基本的 XML 文件及XML的节点类型

转载 2006年06月07日 13:40:00

XML 文件的基本组成部分包括:

XML 声明:基本的声明 <?xml version"1.0"?> 将这个文件定义为 XML 文档。在声明中指定一种字符编码的情况并不鲜见,如下所示。通过这种方式,不管该 XML 文件使用的语言或字符编码是什么,只要解析器理解特定的编码,它就能够正确地读取该 XML 文件。 DOCTYPE 声明:XML 是人机之间交换信息的便利手段,但是要使它能够顺利地工作,必须要有一个公共的词汇表。可选的 DOCTYPE 声明可用于指定一个应该用来与此文件做比较的文档(在本例中为 orders.dtd),以确保不会产生任何混淆或丢失信息(例如,丢失一个 userid 或错误拼写某个元素名称)。以这种方式处理过的文档称为有效的文档。成功的有效性检查并不是 XML 所必需的,后面的例子实际上从文档中省略了 DOCTYPE 声明。 数据本身:XML 文档中的数据必须包含在单个根元素内,比如下面的 orders 元素。要使 XML 文档得到处理,它必须是格式良好的(well-formed)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ORDERS SYSTEM "orders.dtd">

<orders>

   <order>
      <customerid limit="1000">12341</customerid>
      <status>pending</status>
      <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>
   </order>
   <order>
      <customerid limit="150">251222</customerid>
      <status>pending</status>
      <item instock="Y" itemid="WB78">
         <name>Winter Blanket (78 inch)</name>
         <price>20</price>
         <qty>10</qty>
      </item>
   </order>

</orders>
 

DOM 本质上是节点的集合。 由于一个文档中可能包含不同类型的信息,因此要定义不同类型的节点。

在创建 XML 文件的层次时,产生某些在概念上类似如下结构的内容是很自然的。 虽然它是对所包括的数据的精确描述,但它不是对 DOM 所表示的数据的精确描述。这是因为它表示了 元素,但是没有表示 节点

DOM 的初步层次图

元素和节点的区别

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

正确的 DOM

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

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

还要注意,可能被认为是某个元素的内容的东西,比如“Premium Cinch”,实际上却是作为 name 元素的子节点的文本节点的内容。

基本的节点类型:文档、原始、属性和文本

元素:元素是 XML 的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属性的唯一节点类型。 属性:属性节点包含关于元素节点的信息,但是并不实际认为是元素的孩子,比如在下面的例子中:
<customerid limit="1000">12341</customerid>
文本:文本节点就是名副其实的文本。它可以由更多信息组成,也可以只包含空白。 文档:文档节点是文档中其他所有节点的父亲。

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

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

<[CDATA[Important:  Please keep head and hands inside ride at all times.]]>

注释:注释包括关于数据的信息,通常被应用程序忽略。它们写为如下形式:

<!--  This is a comment. -->

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

<?xml-stylesheet type="text/xsl" href="foo.xsl"?>

文档片断:要使文档成为格式良好的,它必须仅有一个根元素。有时在使用 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>

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

XML中元素与节点的区别

Element是Node的扩展,除了Element之外,Attribute(属性)、Text(文本节点)、PI(处理指令)、 Document(文档)等等都是Node。 例如,用Element可以方...
  • youxirenjia90
  • youxirenjia90
  • 2016年10月12日 17:06
  • 1906

XML 节点类型

基本的节点类型:文档、原始、属性和文本 XML 中最常见的节点类型包括:元素:元素是 XML 的基本构造模块。通常,元素拥有子元素、文本节点,或两者的组合。元素节点也是能够拥有属...
  • xuhaipeng
  • xuhaipeng
  • 2008年10月27日 15:55
  • 2558

XML节点和元素的关系

今天研究了一下xml的节点和元素的关系,还不是太明白。 以下是摘自http://www.w3school.com.cn/xmldom/dom_node.asp的解释。Node 对象Node 对象是整个...
  • chaiyu2002
  • chaiyu2002
  • 2010年10月26日 16:58
  • 21904

读取XML中的所有节点名

1.基本知识在开始程序之前,先介绍下关于XML的基本知识。(从VS帮助文档上摘抄)     XML 文档对象模型 (DOM) 类是 XML 文档的内存中表示形式。DOM 使您能够以编程方式读取、处理和...
  • shmiloy001
  • shmiloy001
  • 2011年07月27日 14:41
  • 12269

DOM解析xml文档节点下的所有子节点,怎么样只输出标签名而没有<#text>标签

XML文档: 现在我要遍历根节点matchineroot节点下所有子节点并获得节点名,如果直接用DOM遍历节点...
  • yinxiangzhongqing
  • yinxiangzhongqing
  • 2016年10月31日 09:26
  • 1792

操作xml节点

今天有个需求需要操作xml节点.突然见遗忘了许多.上网看了些资料.才整出来.脑袋真不够用.在这里把我找到的资料共享一下.方便以后使用.本文属于网摘/ 一、简单介绍 using System.Xml...
  • u012269157
  • u012269157
  • 2017年05月08日 11:17
  • 282

递归遍历所有xml的节点及子节点

遍历所有xml的节点及子节点,dom4j package test.floatd; import java.io.File; import java.util.List; import org....
  • sidihuo
  • sidihuo
  • 2015年08月06日 16:22
  • 14556

基本的 XML 文件及XML的节点类型

XML 文件的基本组成部分包括:XML 声明:基本的声明 将这个文件定义为 XML 文档。在声明中指定一种字符编码的情况并不鲜见,如下所示。通过这种方式,不管该 XML 文件使用的语言或字符编码是什...
  • wwwphp
  • wwwphp
  • 2006年06月07日 13:40
  • 3613

操作XML

操作XML   千呼万唤始出来,BB了这么多东西,咱们终于可以写点东西了,前方内容很多,楼主正在考虑是否可以分开写.   因为啥东西多呢?前面说了那么多关于XML的...
  • shanyongxu
  • shanyongxu
  • 2016年04月23日 21:23
  • 3884

创建XML文件以及XML中的节点和更新Xml文件中的节点的值

最近在项目中用到了XML文件,需要将一些配置信息保存到指定的XML文件中。因此就用到了对XML文件中节点的值的更新的功能。 首先我们来创建一个XML文件,并在文件中创建几个值,我们来看下Demo的代...
  • weizhiai12
  • weizhiai12
  • 2011年10月31日 17:37
  • 908
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基本的 XML 文件及XML的节点类型
举报原因:
原因补充:

(最多只允许输入30个字)