PBDOM操作XML文档轻松入门
来源:互联网 发布:淘宝怎么打假 编辑:程序博客网 时间:2024/06/05 17:19
转自: http://blog.sina.com.cn/s/blog_475839a50101i987.html
本文主要包括以下内容:
1、为什么要使用PBDOM以及怎样创建PBDOM
2、PBDOM主要用于那些地方
3、如何使用PBDOM编程
4、PBDOM和其他XML解析(parser)技术的比较
一、什么是DOM
1、作为一项W3C规范,XML DOM存在目的是为不同类型的应用程序提供一个标准的编程接口,它被设计可以跨平台、跨语言使用。
2、我们可以利用XML DOM创建XML文档并操纵其结构,增加、修改、删除元素。
3、程序中调用XML解析器载入XML文档到内存中。当文档被载入后,可以通过进入DOM检索和操作相关信息。
4、DOM 保存了XML文档树,文档(document)元素位于整棵树的最顶层。该元素可以有一到多个子节点来保存树的结构。
可以参阅以下网站:http://www.w3schools.com/dom/ 来了解更多的关于XML Document Object Model的内容。
二、什么时候应该使用DOM工具
1、在一个或者多个XML文档之间移动元素
2、创建新的元素并且在XML文档的任意位置插入
3、操作元素并重新插入其到XML文档其他位置
4、导入内嵌数据结构
三、什么是PBDOM
1、PBDOM是通过PBNI扩展出来的,用于操作XML数据,并针对PowerScript作了优化
2、在程序中模型是通过DOM的抽象来表示XML数据。(A programming model to represent XML data –an abstraction of DOM)
3、底层是对Apache Xerces/C++的封装。
四、PBDOM的设计目标
1、简单易用(Be straightforward for PowerBuilder programmers)
2、可以利用PowerScript的强大语言能力(如对象、方法重载、数据等)
3、在可能的情况下,隐藏了XML底层的复杂实现(Hide the complexities of XML wherever possible)
4、原有的DOM在pb下使用不够直观(DOM is unintuitive to a PowerBuilder programmer)
五、使用PBDOM初步
1、添加pbdom90.pbd(%SYBASE%/Shared/PowerBuilder)到工程的pbl列表中
2、%SYBASE%/Shared/PowerBuilder应该在系统路径或者应用程序的路径中(也就是pbdom要使用此路径下的pbdom90.dll, pbxerces90.dll、xerces_2_1_0.dll文件,同样,当程序发布时候也需要)
六、PBDOM类的使用
1、PBDOM_Document
◆构建PBDOM举例
1.1 直接构建(XML documents can be created from scratch)
PBDOM_Document doc
PBDOM_Element rootdoc = CREATE PBDOM_Document
root = CREATE PBDOM_Element
root.SetName( "root" )
root.SetText( "this is the root" )
doc.AddContent( root )
1.2 从文件、字符串、DataStore中载入
PBDOM_Builder builder
doc = builder.BuildFromString( "bar" )
doc = builder.BuildFromFile( "c:/foo/bar.xml"
doc = builder.BuildFromDataStore( l_ds)
2、PBDOM_Element
2.1 遍历元素
PBDOM_Element root, children[], first
// Get the root element of the document
root = doc.GetRootElement()
// Get an array of all child elements
root.GetChildElements( children )
// Get only elements with a given name
root.GetChildElements( "name", children )
// Get the first element with a given name
first = root.GetChildElement( "name" )
注意:
上例中得到的元素数组是联动的!(The element array is live!) 即:
◆
◆
◆
2.2 移动元素
// PBDOM_Document docOne,docTwo
PBDOM_Element movable
movable = CREATE PBDOM_Element
Movable.SetName( "movable" )
docOne.AddContent( movable )
movable.Detach()
docTwo.addContent( movable )
注意:
1、只要是从PBDOM_Object继承的对象,都可以调用Detach()方法(如Comments、ProcessingInstructions、Elements (and their content)等等)
2、PBDOM元素对象不是永久的捆绑在它的父文档上的(PBDOM elements aren't permanently tied to their parent document)
2.3 符合规格(Always well-formed)
PBDOM_Element构造器以及setter方法会检查元素是否符合规格:
AddContent()方法也会从以下几个方面进行检查:
◆
◆
◆
3、PBDOM_Attribute
3.1 操作元素属性
◆
<<span style="color: rgb(153, 51, 0);">table
// Get an attribute
ls_width = table.GetAttributeValue( "width" )
ls_width = table.GetAttribute ( "width" ).GetText()
// Attributes can be typed
li_border = table.GetAttribute( "width" ).GetIntValue()
// Set an attribute
table.SetAttribute( "cellspacing", "0" )
// Remove an attribute
table.RemoveAttribute( "cellspacing" )
// Remove all attributes
PBDOM_Attribute empty[]
table.SetAttributes( empty )
4、PBDOM_Text
4.1 操作元素文本内容
<<span style="color: rgb(128, 0, 0);">description>
<<span style="color: rgb(128, 0, 0);">/description>
// the text is directly available –returns
// "~r~ncool demo~r~n"
ls_desc= elem.GetText()
// two convenience methods
ls_desc= elem.GetTextTrim()// returns "cool demo"
ls_desc = elem.GetTextNormalize()// returns "cool demo"
// text can be changed directly
elem.SetText( "a new description" )
5、PBDOM_Object
5.1 操作有混合内容的元素
<<span style="color: rgb(128, 0, 0);">description>
<<span style="color: rgb(128, 0, 0);">/description>
PBDOM_Object content[]
desc.GetContent( content )
FOR i = 1 TO UpperBound( content )
NEXT
6、PBDOM_ProcessingInstruction
6.1 使用处理命令(Processing instructions)
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门
- PBDOM操作XML文档轻松入门(Easy XML with PowerBuilder Document Object Model)
- PBDOM操作XML文档轻松入门(Easy XML with PowerBuilder Document Object Model)
- PBDOM操作XML文档轻松入门(Easy XML with PowerBuilder Document Object Model)
- 使用PBDOM解析xml
- PBDOM 解析和生成XML
- 轻松入门git操作
- PBDOM解析XML 和xml基础知识
- 使用PBDOM读取XML的一个例子
- 使用PBDOM读取XML的一个例子
- 使用PBDOM读取XML的一个例子
- 自动化操作轻松入门系列
- XML入门--XML文档规则
- linux命令 exec
- sqlite3的C语言API操作数据库的实例分析
- 阻塞与非阻塞I/O,I/O复用,同步和异步I/O
- 黑马程序员---Java初步
- 关于内核代码阅读
- PBDOM操作XML文档轻松入门
- WordPress 优化必备插件
- 图像简单的灰度变换
- Libsvm在matlab环境下使用指南
- 理清static和final的侧重点就不混淆了
- Android activity的生命周期
- JDK线程池的使用
- 生成短链接
- 如何尽快跻身优秀程序员行列的建议和方法