XML系列教程之一——XML教程
非法的XML字符必须被替换为实体引用(entity reference)。
假如您在XML文档中放置了一个类似\字符,那么这个文档会产生一个错误,这是因为解析器会把它解释为新元素的开始。因此你不能这样写:
CDATA内部的所有东西都会被解析器忽略。
假如文本中包含了大量的\和\字符,就像编程代码中经常出现的情况一样,那么这个XML元素就可以被定义为一个CDATA部分。
CDATA区段开始于\,结束于\:
在上面的例子中,在CDATA区段中的所有东西都会被解析器忽略。 19.4 关于CDATA区段的注释
CDATA区段不能包含字符串\,所以,CDATA区段的嵌套是不被允许的。
同时也需要确保在\字符串中没有空格或折行。
20 XML编码
XML文档可能包含外国字符,比如挪威语,或者法语。
为了让XML解析器读懂这些字符,您需要把XML文档存为Unicode。 20.1 Windows 2000记事本
Windows 2000记事本可以把文件保存为Unicode。
将XML文件保存为Unicode(注意,此文档未包含任何编码属性):
Mengliao Software Studio - Bosun Network Co., Ltd.
第 45 页 - 共 53页
XML系列教程之一——XML教程
6.2中会出错。
20.2 Windows 2000 Notepad with Encoding
Windows 2000 记事本使用 \编码将文件保存为 Unicode。 如果您为保存为 Unicode 的 XML 文件添加了一个编码属性,windows 的编码值可能产生错误。
下面的编码,不会报错:
如果您试图向IE中载入XML文档,可能会得到两种指示编码问题的错误: 在文本内容中发现非法字符:
如果XML文档中的某个字符与编码属性不匹配,您就会得到这个错误消息。通常,当XML文件中含有外国字符,且当文件使用类似记事本的单字节编码编辑器保存,以及没有指定编码属性时,您就会得到这个错误消息。
将当前编码切换为不被支持的指定编码:
如果您的文件被保存为Unicode/UTF-16,但是编码属性被指定为单字节编
Mengliao Software Studio - Bosun Network Co., Ltd.
第 46 页 - 共 53页
XML系列教程之一——XML教程
码(比如Windows-1252、ISO-8859-1或者UTF-8)时,那么您就会得到这个错误消息。或者当您的文档被保存为单字节编码,但编码属性被指定为双字节编码(比如UTF-16)时,也会得到这个错误消息。 20.4 结论
结论是:编码属性应当被指定为文档被保存时所使用的编码。我最好的避免错误的建议是:
? 使用支持编码的编辑器; ? 确定编辑器使用的编码;
? 在您的 XML 文档中使用相同的编码属性。
21 XML DOM高级
XML DOM(Document Object Model)定义了访问和操作XML文档的标准方法。 21.1 XML DOM
DOM把XML文档视为一种树结构。通过这个DOM树,可以访问所有的元素。可以修改它们的内容(文本以及属性),而且可以创建新的元素。元素,以及它们的文本和属性,均被视为节点。
在本教程的较早章节中,我们介绍了XML DOM,并使用了XML DOM的getElementsByTagName()从DOM树中取回数据。 21.2 获取元素的值
下面的代码检索第一个
x=xmlDoc.getElementsByTagName(\Mengliao Software Studio - Bosun Network Co., Ltd.
第 47 页 - 共 53页
XML系列教程之一——XML教程
txt=x.nodeValue; 结果:txt = \21.3 获取属性的值
下面的代码检索第一个
txt=xmlDoc.getElementsByTagName(\结果:txt = \21.4 改变元素的值
下面的代码改变第一个
x=xmlDoc.getElementsByTagName(\x.nodeValue=\21.5 改变属性的值
setAttribute()方法可用于改变已有属性的值,或创建一个新属性。 下面的代码向每个
x=xmlDoc.getElementsByTagName(\ for(i=0;i createElement()方法创建新的元素节点。 createTextNode()方法创建新的文本节点。 appendChild()方法向节点添加子节点(在最后一个子节点之后)。 如需创建带有文本内容的新元素,需要同时创建元素节点和文本节点。 下面的代码创建了一个元素( Mengliao Software Studio - Bosun Network Co., Ltd. 第 48 页 - 共 53页