商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > XML 取得元素的字符数据

XML 取得元素的字符数据

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

串接样式表是一个包含安排XML文件中元素相关指令的档案。因为你已经利用XML创造了自己的元素,浏览器并不知道如何适当地显示这些元素。

列表9-3中的script程序使用每个子元素(TITLE、AUTHOR、BINDING、PAGES与PRICE)的text属性,作为获取元素字符数据的快捷方法。比如,下面这段代码用来提取TITLE元素中的字符数据:

title.innerText = Document.documentElement.childNodes(0).text;

text属性不仅返回当前节点对应元素的文字内容,还会顺带返回所有后续元素的文字内容。当元素没有子元素时,这个属性确实能正确提取文字(比如TITLE元素)。不过,一旦元素包含多个子元素和字符数据,text属性就会一股脑儿地返回所有文字。就像下面这个例子,它会返回「Moby-Dick Or,the Whale」:

Moby-Dick
<SUBTITLE>Or, the Whale</SUBTITLE>

那么,如何只获取TITLE元素的字符数据呢?你必须访问TITLE元素的子文字节点。

表格9-1中提到,Element节点的nodeValue属性值是null。如果元素包含字符数据,这些文字会被存储在子Text节点中,然后你可以通过这个Text节点的nodeValue属性来读取。例如,如果TITLE的Element节点包含文字「Moby-Dick」,下面这段代码就能返回TITLE的字符数据「Moby-Dick」,而不会带上SUBTITLE的内容:

Element.firstChild.nodeValue

(因为TITLE元素的字符数据位于子元素之前,所以第一个子节点就代表了字符数据,你可以直接用firstChild属性来获取。)如果元素的字符数据与子元素、注释或处理指令混杂在一起,每个独立的字符数据区块都会成为一个子Text节点。比如下面这个例子,ITEM元素有三个子节点:第一个Text节点对应第一个字符数据区块,Element节点对应子元素SUB-ITEM,另一个Text节点对应第二个字符数据区块:


character data block 1
sub-item text
character data block 2

表格9-5列出了Text节点提供的有用属性和方法:

Text节点的属性 描述 范例
Length 该节点文字包含的字符数 CharacterCount = Text.length;
Text节点的方法 描述 范例
SubstringData(char-offset, num-chars) 返回一个字符串,从节点文字中截取指定数量的字符。char-offset是起始位置,num-chars是长度。 SubString = Text.substringData(2, 3);(从Text元素内容中返回第2、3、4这三个字符)

这些属性也包括了表格9-2中列出的公共节点属性,实际使用时可以一并参考。

本文转载于:https://www.jb51.net/article/5463.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注