网络编程
位置:首页>> 网络编程>> XML编程>> 理解 XMLDOM 的节选(2)

理解 XMLDOM 的节选(2)

  发布时间:2008-02-17 14:48:00 

标签:xmldom,dom,xml,节点

元素和节点的区别

事实上,元素只是节点的一种类型,它们甚至不表示上图似乎要揭示的内容。 元素节点是信息的容器。该信息可能是其他元素节点、文本节点、属性节点或其他类型的信息。对该文档的更精确描绘如下:

矩形框表示元素节点,椭圆表示文本节点。 当一个节点包含在另一个节点之内时,它就被认为是后一个节点的孩子。

注意 orders 元素节点不是只有两个子节点,而是有五个子节点:两个 order 元素,以及它们之间后周围的文本节点。即使没有内容,order 元素之间的空白也会构成一个文本节点。类似地, item 具有七个子节点:name、price、qty,以及它们周围的四个文本节点。

(编者注:你可能会有疑问:在IE中编程时,如docmentElement.childNodes(0)却为第一个order 子元素节点,而不是相应的上面提到的空白文本节点;同样docmentElement.childNodes(1)却为第二个order 子元素节点。怎么会这样呢?这是因为IE所含的XML解析器为MSXML版本,它解析时忽略上面提到的空白文本节点;而在java中你就可以验证确实包含空白文本节点;在.NET中你设置xml文档的PreserveWhitespace属性为true,则包含空白文本节点,否则忽略。由此可见,不同的API实现DOM接口的方法不同。)还要注意,可能被认为是某个元素的内容的东西,比如“Premium Cinch”,实际上却是作为 name元素的子节点的文本节点的内容。(虽然本图并不完整,漏掉了属性节点以及其他内容。)

基本的节点类型

最常见的节点类型包括:

元素:元素是 XML 的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属性的唯一节点类型。

属性:属性节点包含关于元素节点的信息,但是并不实际认为是元素的孩子,比如在下面的例子中:

<customerid limit="1000">12341</customerid>

文本:文本节点就是名副其实的文本。它可以由更多信息组成,也可以只包含空白。
文档:文档节点是文档中其他所有节点的父亲。

不太常见的节点类型:CDATA、注释、处理指令,以及文档片断

其他节点类型不太常用,但是在某些场合下仍然是必需的。

它们包括:

CDATA:字符数据(Character Data)的缩写,这是一个特殊的节点,它包含不应该被解析器分析的信息。相反,它包含的信息应该以纯文本传递。例如,可能会为了特殊目的而存储 HTML 标签。在通常情形下,处理器可能尝试为所存储的每个标签创建元素,而这样可能导致文档不是格式良好的。这些问题可用通过使用 CDATA 节(section)来避免。

注释:注释包括关于数据的信息,通常被应用程序忽略。

处理指令:处理指令是专门针对应用程序的信息。其中一些例子包括要执行的代码或者关于从何处寻找样式表的信息。

文档片断:要使文档成为格式良好的,它必须仅有一个根元素。有时在使用 XML 的时候,必须临时创建多组元素,这些元素不一定满足这个要求。文档片断看起来类似如下:

<item instock="Y" itemid="SA15">
<name>Silver Show Saddle, 16 inch</name>
<price>825.00</price>
<qty>1</qty>
</item>
<item instock="N" itemid="C49">
<name>Premium Cinch</name>
<price>49.00</price>
<qty>1</qty>
</item>

其他类型的节点包括实体、实体引用节点,以及注解。

文章推荐:苏沈小雨htmlDOM方法中文手册chm

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com