xml 文档对象模型定义访问和操作xml文档的标准方法。
DOM 将 XML 文档作为一个树形结构,而树叶被定义为节点。
什么是 XML DOM?
XML DOM 是:
用于 XML 的标准对象模型
用于 XML 的标准编程接口
中立于平台和语言
W3C 的标准
XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法(接口)。
换句话说:
XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。
XML DOM 节点
XML 文档中的每个成分都是一个节点。
节点
根据 DOM,XML 文档中的每个成分都是一个节点。
DOM 是这样规定的:
整个文档是一个文档节点
每个 XML 标签是一个元素节点
包含在 XML 元素中的文本是文本节点
每一个 XML 属性是一个属性节点
注释属于注释节点
DOM 实例
请看下面的 XML 文件 (books.xml):
Harry Potter J K. Rowling 2005 29.99Everyday Italian Giada De Laurentiis 2005 30.00Learning XML Erik T. Ray 2003 39.95XQuery Kick Start James McGovern Per Bothner Kurt Cagle James Linn Vaidyanathan Nagarajan 2003 49.99
登录后复制
在上面的 XML 中,根节点是 。文档中的所有其他节点都被包含在 中。
根节点 有四个 节点。
第一个 节点有四个节点:
文本总是存储在文本节点中
在 DOM 处理中一个普遍的错误是,认为元素节点包含文本。
不过,元素节点的文本是存储在文本节点中的。
在这个例子中:2005,元素节点 ,拥有一个值为 “2005” 的文本节点。
“2005” 不是 元素的值!
XML DOM 节点树
XML DOM 把 XML DOM 文档视为一棵节点树 (node-tree)。
树中的所有节点彼此之间都有关系。
XML DOM 节点树
XML DOM 把 XML 文档视为一种树结构。这种树结构被称为节点树。
可通过这棵树访问所有节点。可以修改或删除它们的内容,也可以创建新的元素。
这颗节点树展示了节点的集合,以及它们之间的联系。这棵树从根节点开始,然后在树的最低层级向文本节点长出枝条:
上面的图片表示 XML 文件 books.xml。
父、子和同级节点
节点树中的节点彼此之间都有等级关系。
父、子和同级节点用于描述这种关系。父节点拥有子节点,位于相同层级上的子节点称为同级节点(兄弟或姐妹)。
在节点树中,顶端的节点成为根节点
根节点之外的每个节点都有一个父节点
节点可以有任何数量的子节点
叶子是没有子节点的节点
同级节点是拥有相同父节点的节点
下面的图片展示出节点树的一个部分,以及节点间的关系:
因为 XML 数据是按照树的形式进行构造的,所以可以在不了解树的确切结构且不了解其中包含的数据类型的情况下,对其进行遍历。
您将在本教程稍后的章节学习更多有关遍历节点树的知识。
注释:父节点:Parent Node,子节点:Children Node,同级节点:Sibling Node。
第一个子节点 – 最后一个子节点
请看下面的 XML 片段:
Harry Potter J K. Rowling 2005 29.99
登录后复制
在上面的 XML 中,
此外, 元素是
解析 XML DOM
解析 XML
所有现代浏览器都内建了用于读取和操作 XML 的 XML 解析器。
解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。
微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历 XML 树、访问、插入及删除节点的函数。
在本教程中,我们将为您讲解如何创建可在 IE 及其他浏览器中运行的脚本。
通过微软的 XML 解析器加载 XML
微软的 XML 解析器内建于 Internet Explorer 5 及更高版本中。
下面的 JavaScript 片段把 XML 文档 (“books.xml”) 载入了解析器:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.load("books.xml");
登录后复制
代码解释:
第一行创建空的微软 XML 文档对象
第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
第三行告知解析器加载名为 “books.xml” 的文档
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async="false";xmlDoc.loadXML(txt);
登录后复制
注释:loadXML() 方法用于加载字符串(文本),而load() 用于加载文件。
在 Firefox 及其他浏览器中的 XML 解析器
下面的 JavaScript 片段把 XML 文档 (“books.xml”) 载入了解析器:
xmlDoc=document.implementation.createDocument("","",null);xmlDoc.async="false";xmlDoc.load("books.xml");
登录后复制
代码解释:
第一行创建空的 XML 文档对象
第二行关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
第三行告知解析器加载名为 “books.xml” 的文档
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中:
parser=new DOMParser();xmlDoc=parser.parseFromString(txt,"text/xml");
登录后复制
代码解释:
第一行创建一个空的 XML 文档对象
第二行告知解析器加载名为 txt 的字符串
注释:Internet Explorer 使用loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
解析 XML 文件 – 一个跨浏览器的实例
下面的例子把 XML 文档 (“books.xml”) 载入 XML 解析器:
try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} }try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded, ready for use"); }catch(e) {alert(e.message)}
登录后复制
Error: Access Across Domains
出于安全方面的原因,现代的浏览器不允许跨域的访问。
这意味着,网页以及它试图加载的 XML 文件,都必须位于相同的服务器上。
W3School 的实例所打开的 XML 文件位于 W3School 的域上。
假如你打算在自己的网页上使用上面的例子,则必须把 XML 文件放到自己的服务器上。否则,xmlDoc.load() 将产生错误 “Access is denied”。
解析 XML 字符串 – 一个跨浏览器的实例
下面的代码加载并解析了一个 XML 字符串:
text=""text=text+"";text=text+"Harry Potter";text=text+"J K. Rowling";text=text+"2005";text=text+"";text=text+"";try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); }catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} }document.write("xmlDoc is loaded, ready for use");</pre> <p>登录后复制</p> <p> </p> <p><strong>XML DOM 加载函数</strong></p> <p><strong></strong> </p> </p> <h2><span class="ez-toc-section" id="25E5258A25A025E825BD25BD25E5258725BD25E6259525B0"></span>加载函数<span class="ez-toc-section-end"></span></h2> </p> <p>XML DOM 含有遍历 XML 树以及访问、插入、删除节点的方法(函数)。</p> <p>然后,在访问并处理 XML 文档之前,必须把它载入 XML DOM 对象。</p> <p>上一节演示了如何加载 XML 文档。为了避免因加载文档而重复编写代码,可以把代码存储在一个单独的 JavaScript 文件中:</p> <pre class="brush:xml;toolbar:false;">function loadXMLDoc(dname) {try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); }catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} }try { xmlDoc.async=false; xmlDoc.load(dname); return(xmlDoc); }catch(e) {alert(e.message)}return(null);}</pre> <p>登录后复制</p> <p>上面的函数存储在名为 “loadxmldoc.js” 的文件中。</p> <p>下面的例子在其 部分有一个指向 “loadxmldoc.js” 的链接,并使用 loadXMLDoc() 函数加载 XML 文档 (“books.xml”):</p> <pre class="brush:xml;toolbar:false;">xmlDoc=loadXMLDoc("books.xml");document.write("xmlDoc is loaded, ready for use");</pre> <p>登录后复制</p> <p> </p> <p> </p> <p> </p> <p><strong>XML DOM – 属性和方法</strong></p> <p><strong></strong> </p> </p> <h2><span class="ez-toc-section" id="25E725BC259625E725A8258B25E6258E25A525E5258F25A3"></span>编程接口<span class="ez-toc-section-end"></span></h2> </p> <p>DOM 把 XML 模拟为一系列节点接口。可通过 JavaScript 或其他编程语言来访问节点。在本教程中,我们使用 JavaScript。</p> <p>对 DOM 的编程接口是通过一套标准的属性和方法来定义的。</p> <p><em>属性</em>经常按照“某事物是什么”的方式来使用(例如节点名是 “book”)。</p> <p><em>方法</em>经常按照“对某事物做什么”的方式来使用(例如删除 “book” 节点)。</p> </p> <h2><span class="ez-toc-section" id="XML_DOM_25E525B1259E25E6258025A7"></span>XML DOM 属性<span class="ez-toc-section-end"></span></h2> </p> <p>一些典型的 DOM 属性: </p> <p>x.nodeName – x 的名称 </p> <p>x.nodeValue – x 的值 </p> <p>x.parentNode – x 的父节点 </p> <p>x.childNodes – x 的子节点 </p> <p>x.attributes – x 的属性节点 </p> </p> <p class="note">注释:在上面的列表中,x 是一个节点对象。</p> </p> <h2><span class="ez-toc-section" id="XML_DOM_25E6259625B925E625B32595"></span>XML DOM 方法<span class="ez-toc-section-end"></span></h2> <p>x.getElementsByTagName(name) – 获取带有指定标签名称的所有元素 </p> <p>x.appendChild(node) – 向 x 插入子节点 </p> <p>x.removeChild(node) – 从 x 删除子节点 </p> </p> <p class="note">注释:在上面的列表中,x 是一个节点对象。</p> </p> <h2><span class="ez-toc-section" id="25E525AE259E25E425BE258B"></span>实例<span class="ez-toc-section-end"></span></h2> </p> <p>从 books.xml 中的 <title> 元素获取文本的 JavaScript 代码: txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue登录后复制
在此语句执行后,txt 保存的值是 “Everyday Italian”。
解释:
xmlDoc – 由解析器创建的 XML DOM
getElementsByTagName(“title”)[0] – 第一个
元素 childNodes[0] –
元素的第一个子节点 (文本节点) nodeValue – 节点的值 (文本自身)
在上面的例子中,getElementsByTagName 是方法,而 childNodes 和 nodeValue 是属性。
解析 XML 文件 – 跨浏览器实例
下面的代码片段使用 loadXMLDoc 函数把 books.xml 载入 XML 解析器中,并显示第一个 book 的数据:
xmlDoc=loadXMLDoc("books.xml");document.write(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue);document.write("
");document.write(xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeValue);document.write("
");document.write(xmlDoc.getElementsByTagName("year")[0].childNodes[0].nodeValue);登录后复制
输出:
Harry PotterJ K. Rowling2005登录后复制登录后复制
在上面的例子中,我们为每个文本节点使用 childNodes[0],即使每个元素只有一个文本节点。这是由于 getElementsByTagName() 方法总是会返回数组。
解析 XML 字符串 – 跨浏览器实例
下面的代码加载并解析一个 XML 字符串:
下面的代码片段使用 loadXMLString 函数把 books.xml 载入 XML 解析器,并显示第一个 book 的数据:
text=""text=text+"";text=text+"Harry Potter ";text=text+"J K. Rowling";text=text+"2005";text=text+"";text=text+"";xmlDoc=loadXMLString(text);document.write(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue);document.write("
");document.write(xmlDoc.getElementsByTagName("author")[0].childNodes[0].nodeValue);document.write("
");document.write(xmlDoc.getElementsByTagName("year")[0].childNodes[0].nodeValue);登录后复制
输出:
Harry PotterJ K. Rowling2005登录后复制登录后复制
访问节点
您可以通过三种方法来访问节点:
通过使用 getElementsByTagName() 方法
通过循环(遍历)节点树
通过利用节点的关系在节点树中导航
getElementsByTagName() 方法
getElementsByTagName() 返回拥有指定标签名的所有元素。
语法
node.getElementsByTagName("tagname");登录后复制
实例
下面的例子返回 x 元素下的所有
元素: x.getElementsByTagName("title");登录后复制
请注意,上面的例子仅返回 x 节点下的
元素。要返回 XML 文档中的所有 <title> 元素,请使用: xmlDoc.getElementsByTagName("title");登录后复制
在这里,xmlDoc 就是文档本身(文档节点)。
DOM Node List
getElementsByTagName() 方法返回节点列表 (node list)。节点列表是节点的数组。
下面的代码通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中,然后在变量 x 中存储
节点的一个列表: xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title");登录后复制登录后复制
可通过下标访问 x 中的
元素。要访问第三个 <title>,您可以编写: y=x[2];登录后复制
注释:下标以 0 起始。
在本教程中稍后的章节,您将学到更多有关 Node List 的知识。
DOM Node List Length
length 属性定义节点列表的长度(即节点的数目)。
您能够通过使用 length 属性来循环一个节点列表:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title");for (i=0;i"); }登录后复制
例子解释:
使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc
取得所有
元素节点 输出每个
元素的文本节点的值
Node Type
XML 文档的 documentElement 属性是根节点。
节点的 nodeName 属性是节点的名称。
节点的 nodeType 属性是节点的类型。
您将在本教程的下一节中学习更多有关节点属性的知识。
遍历节点
下面的代码循环根节点的子节点,同时也是元素节点:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.documentElement.childNodes;for (i=0;i"); } }登录后复制
例子解释:
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
获得根元素的子节点
检查每个子节点的节点类型。如果节点类型是 “1”,则是元素节点
如果是元素节点,则输出节点的名称
利用节点的关系进行导航
下面的代码通过利用节点的关系在节点树中进行导航:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("book")[0].childNodes;y=xmlDoc.getElementsByTagName("book")[0].firstChild;for (i=0;i"); }y=y.nextSibling;}登录后复制
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
获得第一个 book 元素的子节点
把 “y” 变量设置为第一个 book 元素的第一个子节点
检查每个子节点的节点类型,如果节点类型是 “1”,则是元素节点
如果是元素节点,则输出该节点的名称
把 “y” 变量设置为下一个同级节点,并再次运行循环
节点的属性
在 XML 文档对象模型 (DOM) 中,每个节点都是一个对象。
对象拥有方法(功能)和属性(关于对象的信息),并可通过 JavaScript 进行访问和操作。
三个重要的 XML DOM 节点属性是:
nodeName
nodeValue
nodeType
nodeName 属性
nodeName 属性规定节点的名称。
nodeName 是只读的
元素节点的 nodeName 与标签名相同
属性节点的 nodeName 是属性的名称
文本节点的 nodeName 永远是 #text
文档节点的 nodeName 永远是 #document
nodeValue 属性
nodeValue 属性规定节点的值。
元素节点的 nodeValue 是 undefined
文本节点的 nodeValue 是文本自身
属性节点的 nodeValue 是属性的值
例子 1:获取元素的值
下面的代码检索第一个
元素的文本节点的值: xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];txt=x.nodeValue;登录后复制
结果:txt = “Everyday Italian”
代码解释:
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
获取第一个
元素节点的文本节点 把 txt 变量设置为文本节点的值
例子 2:更改元素的值
下面的代码更改第一个
元素的文本节点的值: xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";登录后复制
代码解释:
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
获取第一个
元素节点的文本节点 把文本节点的值更改为 “Easy Cooking”
nodeType 属性
nodeType 属性规定节点的类型。
nodeType 是只读的。
最重要的节点类型是:
元素类型 节点类型元素1属性2文本3注释8文档9
DOM Node List
当使用诸如 childNodes 或 getElementsByTagName() 属性或方法时,会返回 NodeList 对象。
NodeList 对象表示节点的列表,以 XML 中的相同顺序。
使用从 0 开始的下标来访问节点列表中的节点。
下面的图像表示 “books.xml” 中
元素的节点列表:
下面的代码片段通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中,并返回 “books.xml” 中 title 元素的一个节点列表:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("title");登录后复制登录后复制
以上语句执行之后,x 成为一个 NodeList 对象。
下面的代码片段从节点列表 x 中的第一个
元素中返回文本: txt=x[0].childNodes[0].nodeValue;登录后复制
在以上语句执行之后,txt = “Everyday Italian”。
Node List Length
NodeList 对象会保持自身的更新。如果删除或添加了元素,列表会自动更新。
节点列表的 length 属性是列表中节点的数量。
下面的代码片段通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc,并返回 “books.xml” 中
元素的数量: xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName('title').length;登录后复制
在上面的语句执行之后,x = 4。
节点列表的长度可用于循环列表中所有的元素。
下面的代码片段使用 length 属性来遍历
元素的列表: xmlDoc=loadXMLDoc("books.xml");//the x variable will hold a node listx=xmlDoc.getElementsByTagName('title');for (i=0;i");}登录后复制
输出:
Harry PotterEveryday ItalianXQuery Kick StartLearning XML登录后复制
例子解释:
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc
设置保存所有 title 元素的节点列表的 x 变量
从所有
元素的文本节点输出值
DOM Attribute List (Named Node Map)
元素节点的 attributes 属性返回属性节点的列表。
这被称为 Named Node Map,除了方法和属性上的一些差别以外,它与节点列表相似。
属性列表会保持自身的更新。如果删除或添加属性,这个列表会自动更新。
下面的代码片段通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中,并从 “books.xml” 中的第一个 元素返回属性节点的一个列表:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName('book')[0].attributes;登录后复制
以上代码执行之后,x.length 等于属性的数量,可使用 x.getNamedItem() 返回属性节点。
下面的代码片段一个 book 的 “category” 属性的值,以及其属性的数量:
xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("book")[0].attributes;document.write(x.getNamedItem("category").nodeValue);document.write("
" + x.length);登录后复制
输出:
children1登录后复制
例子解释:
通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中
把 x 变量设置为第一个 元素的所有属性的一个列表
从 “category” 属性输出其值
输出属性列表的长度
XML DOM 遍历节点树
遍历 (Traverse) 意味着在节点树中进行循环或移动。
实例
下面的例子使用 XML 文件 books.xml。
函数 loadXMLString(),位于外部 JavaScript 中,用于加载 XML 文件。
遍历一棵节点树
循环 元素的所有子节点。
遍历节点树
您经常需要循环 XML 文档,比如:当你需要提取每个元素的值时。
这个过程叫作“遍历节点树”。
下面的例子循环 的所有子节点,并显示它们的名称和值:
text="";text=text+"Harry Potter";text=text+"J K. Rowling";text=text+"2005";text=text+"";xmlDoc=loadXMLString(text);// documentElement always represents the root nodex=xmlDoc.documentElement.childNodes;for (i=0;i<x.length;i++){document.write(x[i].nodeName);document.write(": ");document.write(x[i].childNodes[0].nodeValue);document.write("<br />");}</pre> <p>登录后复制</p> <p>输出:</p> <pre class="brush:xml;toolbar:false;">title: Harry Potterauthor: J K. Rowlingyear: 2005</pre> <p>登录后复制</p> <h3><span class="ez-toc-section" id="25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-5"></span>例子解释:<span class="ez-toc-section-end"></span></h3> <p>loadXMLString() 把 XML 字符串载入 xmlDoc 中</p> <p>获取根元素的子节点 </p> <p>输出每个子节点的名称,以及文本节点的节点值 </p> <p> </p> </p> <h2><span class="ez-toc-section" id="25E525AE259A25E425BD258D_DOM_25E8258A258225E7258225B9"></span>定位 DOM 节点<span class="ez-toc-section-end"></span></h2> </p> <p>通过节点间的关系访问节点树中的节点,通常称为定位节点 (”navigating nodes”)。</p> <p>在 XML DOM 中,节点的关系被定义为节点的属性:</p> <p>parentNode </p> <p>childNodes </p> <p>firstChild </p> <p>lastChild </p> <p>nextSibling </p> <p>previousSibling </p> <p>下面的图像展示了 books.xml 中节点树的一个部分,并说明了节点之间的关系:</p> <p><noscript><img alt="DOM node tree" src></noscript><img alt="DOM node tree" src></p> </p> <h2><span class="ez-toc-section" id="DOM_25E225802593_25E7258825B625E8258A258225E7258225B9"></span>DOM – 父节点<span class="ez-toc-section-end"></span></h2> </p> <p>所有的节点都仅有一个父节点。下面的代码定位到 的父节点:</p> <pre class="brush:xml;toolbar:false;">xmlDoc=loadXMLDoc("books.xml");x=xmlDoc.getElementsByTagName("book")[0];document.write(x.parentNode.nodeName);</pre> <p>登录后复制</p> <h3><span class="ez-toc-section" id="25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-6"></span>例子解释:<span class="ez-toc-section-end"></span></h3> <p>通过使用 loadXMLDoc() 把 “books.xml” 载入到 xmlDoc 中 </p> <p>获取第一个 元素 </p> <p>输出 “x” 的父节点的节点名 </p> <p>TIY</p> </p> <h2><span class="ez-toc-section" id="25E9258125BF25E52585258D25E725A925BA25E7259A258425E62596258725E6259C25AC25E8258A258225E7258225B9"></span>避免空的文本节点<span class="ez-toc-section-end"></span></h2> </p> <p>Firefox,以及其他一些浏览器,把空的空白或换行当作文本节点,而 IE 不会这么做。</p> <p>这会在使用下列属性使产生一个问题:firstChild、lastChild、nextSibling、previousSibling。</p> <p>为了避免定位到空的文本节点(元素节点之间的空格和换行符号),我们使用一个函数来检查节点的类型:</p> <pre class="brush:xml;toolbar:false;">function get_nextSibling(n){y=n.nextSibling;while (y.nodeType!=1) { y=y.nextSibling; }return y;}</pre> <p>登录后复制</p> <p>有了上面的函数,我们就可以使用 get_nextSibling(node) 来代替 node.nextSibling 属性。</p> <h3><span class="ez-toc-section" id="25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-6"></span>代码解释:<span class="ez-toc-section-end"></span></h3> </p> <p>元素节点的类型是 1。如果同级节点不是元素节点,就移动到下一个节点,直到找到元素节点为止。通过这个办法,在 IE 和 Firefox 中,都可以得到相同的结果。</p> </p> <h2><span class="ez-toc-section" id="25E8258E25B725E5258F259625E725AC25AC25E425B8258025E425B825AA25E52585258325E725B425A0"></span>获取第一个元素<span class="ez-toc-section-end"></span></h2> </p> <p>下面的代码显示第一个 的第一个元素节点:</p> <pre class="brush:xml;toolbar:false;">//check if the first node is an element nodefunction get_firstChild(n){y=n.firstChild;while (y.nodeType!=1) { y=y.nextSibling; }return y;}xmlDoc=loadXMLDoc("books.xml");x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]);document.write(x.nodeName);</pre> <p>登录后复制</p> <p>输出:</p> <pre class="brush:xml;toolbar:false;">title</pre> <p>登录后复制</p> <h3><span class="ez-toc-section" id="25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-7"></span>例子解释:<span class="ez-toc-section-end"></span></h3> <p>通过使用 loadXMLDoc() 把 “books.xml” 载入 xmlDoc 中 </p> <p>在第一个 上使用 get_firstChild 函数,来获取元素节点中的第一个子节点</p> <p>输出第一个子节点(属于元素节点)的节点名 </p> <p> </p> <p> </p> <p>以上就是疯狂XML学习笔记(13)———XML DOM的内容,更多相关内容请关注PHP中文网(www.php.cn)!</p> <p> </p> <p> </p> <p> </p> <!--隐藏底部开始--> <!--隐藏底部结束--> <!--隐藏提示文字开始--> <!--隐藏提示文字开始--> <!--仿真加粉丨开始--> <!--仿真加粉丨结束--> <!--推广开始--> <!--推广结束--> <div class="entry-copyright"><p>版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。</p> <p>发布者:PHP中文网,转转请注明出处:<span>https://www.chuangxiangniao.com/p/2491812.html</span></div> </div> <div class="entry-tag"><a href="https://www.chuangxiangniao.com/p/tag/xmlxuexibijidom" rel="tag">XML,学习笔记,DOM</a></div> <div class="entry-action"> <div class="btn-zan" data-id="2491812"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-thumb-up-fill"></use></svg></i> 赞 <span class="entry-action-num">(0)</span></div> </div> <div class="entry-bar"> <div class="entry-bar-inner"> <div class="entry-bar-info entry-bar-info2"> <div class="info-item meta"> <a class="meta-item j-heart" href="javascript:;" data-id="2491812"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-star"></use></svg></i> <span class="data">0</span></a> <a class="meta-item" href="#comments"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-comment"></use></svg></i> <span class="data">0</span></a> </div> <div class="info-item share"> <a class="meta-item mobile j-mobile-share" href="javascript:;" data-id="2491812" data-qrcode="https://www.chuangxiangniao.com/p/2491812.html"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-share"></use></svg></i> 生成海报</a> <a class="meta-item wechat" data-share="wechat" target="_blank" rel="nofollow" href="#"> <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-wechat"></use></svg></i> </a> <a class="meta-item weibo" data-share="weibo" target="_blank" rel="nofollow" href="#"> <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-weibo"></use></svg></i> </a> <a class="meta-item qq" data-share="qq" target="_blank" rel="nofollow" href="#"> <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qq"></use></svg></i> </a> <a class="meta-item qzone" data-share="qzone" target="_blank" rel="nofollow" href="#"> <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-qzone"></use></svg></i> </a> </div> <div class="info-item act"> <a href="javascript:;" id="j-reading"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-article"></use></svg></i></a> </div> </div> </div> </div> </div> <div class="entry-author"> <h3 class="entry-author-title">关于作者</h3> <div class="entry-author-inner"> <div class="entry-author-avatar"> <a class="avatar j-user-card" href="https://www.chuangxiangniao.com/user/31" target="_blank" data-user="31"><img alt='PHP中文网的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250217034650194.jpg' class='avatar avatar-120 photo' height='120' width='120' /></a> </div> <div class="entry-author-content"> <div class="entry-author-info"> <h4 class="entry-author-name"> <a class="j-user-card" href="https://www.chuangxiangniao.com/user/31" target="_blank" data-user="31">PHP中文网<span class="user-group">签约作者</span></a> </h4> <div class="entry-author-action"> <button type="button" class="wpcom-btn btn-xs btn-follow j-follow btn-primary" data-user="31"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-add"></use></svg></i>关注</button><button type="button" class="wpcom-btn btn-primary btn-xs btn-message j-message" data-user="31"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-mail-fill"></use></svg></i>私信</button> </div> </div> <div class="entry-author-stats"> <div class="user-stats-item"> <b>351.4K</b> <span>文章</span> </div> <div class="user-stats-item"> <b>0</b> <span>评论</span> </div> <div class="user-stats-item"> <b>1</b> <span>粉丝</span> </div> </div> <div class="entry-author-description">php中文网提供大量免费、原创、高清的php视频教程,并定期举行公益php培训!可边学习边在线修改示例代码,查看执行效果!php从入门到精通,一站式php自学平台!</div> </div> </div> </div> <div class="entry-page"> <div class="entry-page-prev j-lazy" style="background-image: url('https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/images/lazy.png');" data-original="https://cdn.chuangxiangniao.com/2025/03/20250304164625594.gif?imageMogr2/crop/480x300/gravity/center"> <a href="https://www.chuangxiangniao.com/p/2491810.html" title="xml学习(3) html显示xml" rel="prev"> <span>xml学习(3) html显示xml</span> </a> <div class="entry-page-info"> <span class="pull-left"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-arrow-left-double"></use></svg></i> 上一篇</span> <span class="pull-right">2025年3月5日 00:46:24</span> </div> </div> <div class="entry-page-next entry-page-nobg"> <a href="https://www.chuangxiangniao.com/p/2278298.html" title="批处理与python代码混合编程" rel="next"> <span>批处理与python代码混合编程</span> </a> <div class="entry-page-info"> <span class="pull-right">下一篇 <i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-shuffle"></use></svg></i></span> <span class="pull-left">2025年2月27日 16:41:04</span> </div> </div> </div> <div class="wpcom_myimg_wrap __single_2"><section class="sec-panel topic-recommend" style="margin-bottom: 0px;"> <div class=sec-panel-head> <h2><span>AD推荐</span> <small>黄金广告位招租...</small> <a href="/" target="_blank" class="more">更多推荐</a></h2> </div> <div class="sec-panel-body"> <ul class="list topic-list topic-list-2 topic-col-4"> <li class="topic"> <a class="topic-wrap" href="https://env-00jxh6ravp6m-static.normal.cloudstatic.cn/index.html?zid=632167" target="_blank"> <div class="cover-container"> <img class="j-lazy" src="https://www.changchenghao.cn/wp-content/uploads/2019/09/lazy-480x300.png" data-original="https://cdn.chuangxiangniao.com/2024/12/20241212040854381.jpg" alt="资源平台"></div> </a> </li> <li class="topic"> <a class="topic-wrap" href="https://www.chuangxiangniao.com/p/419560.html" target="_blank"> <div class="cover-container"> <img class="j-lazy" src="https://www.changchenghao.cn/wp-content/uploads/2019/09/lazy-480x300.png" data-original="https://cdn.chuangxiangniao.com/2024/12/20241212040856165.jpg" alt="知识付费"></div> </a> </li> <li class="topic"> <a class="topic-wrap" href="https://www.chuangxiangniao.com/p/419521.html" target="_blank"> <div class="cover-container"> <img class="j-lazy" src="https://www.changchenghao.cn/wp-content/uploads/2019/09/lazy-480x300.png" data-original="https://cdn.chuangxiangniao.com/2024/12/20241212040855532.jpg" alt="推广引流"></div> </a> </li> <li class="topic"> <a class="topic-wrap" href="https://www.chuangxiangniao.com/p/419470.html" target="_blank"> <div class="cover-container"> <img class="j-lazy" src="https://www.changchenghao.cn/wp-content/uploads/2019/09/lazy-480x300.png" data-original="https://cdn.chuangxiangniao.com/2024/12/20241212040856335.jpg" alt="法律咨询"></div> </a> </li> </ul> </div> </section></div> <div id="comments" class="entry-comments"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">发表回复 <small><a rel="nofollow" id="cancel-comment-reply-link" href="/p/2491812.html#respond" style="display:none;"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-close"></use></svg></i></a></small></h3><div class="comment-form"><div class="comment-must-login">请登录后评论...</div><div class="form-submit"><div class="form-submit-text pull-left"><a href="https://www.chuangxiangniao.com/login?modal-type=login">登录</a>后才能评论</div> <button name="submit" type="submit" id="must-submit" class="wpcom-btn btn-primary btn-xs submit">提交</button></div></div> </div><!-- #respond --> </div><!-- .comments-area --> </article> </main> <aside class="sidebar"> <!--推广开始--> <!--推广结束--> <div class="widget widget_profile"><div class="profile-cover"><img class="j-lazy" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/images/lazy.png" data-original="//cdn.chuangxiangniao.com/2024/12/20241211050912765-scaled.jpg" alt="PHP中文网"></div> <div class="avatar-wrap"> <a target="_blank" href="https://www.chuangxiangniao.com/user/31" class="avatar-link"><img alt='PHP中文网的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250217034650194.jpg' class='avatar avatar-120 photo' height='120' width='120' /></a></div> <div class="profile-info"> <a target="_blank" href="https://www.chuangxiangniao.com/user/31" class="profile-name"><span class="author-name">PHP中文网</span><span class="user-group">签约作者</span></a> <p class="author-description">php中文网提供大量免费、原创、高清的php视频教程,并定期举行公益php培训!可边学习边在线修改示例代码,查看执行效果!php从入门到精通,一站式php自学平台!</p> <div class="profile-stats"> <div class="profile-stats-inner"> <div class="user-stats-item"> <b>351.4K</b> <span>文章</span> </div> <div class="user-stats-item"> <b>0</b> <span>评论</span> </div> <div class="user-stats-item"> <b>1</b> <span>粉丝</span> </div> </div> </div> <button type="button" class="wpcom-btn btn-xs btn-follow j-follow btn-primary" data-user="31"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-add"></use></svg></i>关注</button><button type="button" class="wpcom-btn btn-primary btn-xs btn-message j-message" data-user="31"><i class="wpcom-icon wi"><svg aria-hidden="true"><use xlink:href="#wi-mail-fill"></use></svg></i>私信</button> </div> <div class="profile-posts"> <h3 class="widget-title"><span>最近文章</span></h3> <ul> <li><a href="https://www.chuangxiangniao.com/p/2491812.html" title="疯狂XML学习笔记(13)———XML DOM">疯狂XML学习笔记(13)———XML DOM</a></li> <li><a href="https://www.chuangxiangniao.com/p/2491810.html" title="xml学习(3) html显示xml">xml学习(3) html显示xml</a></li> <li><a href="https://www.chuangxiangniao.com/p/2491807.html" title="XML—XML解析之DOM4J">XML—XML解析之DOM4J</a></li> <li><a href="https://www.chuangxiangniao.com/p/2491806.html" title="php_xmlhttp乱码问题解决">php_xmlhttp乱码问题解决</a></li> <li><a href="https://www.chuangxiangniao.com/p/2491805.html" title="Python 解析 xml[xml.dom]">Python 解析 xml[xml.dom]</a></li> </ul> </div> </div><div class="widget ez-toc"><div id="ez-toc-widget-container" class="ez-toc-widget-container ez-toc-v2_0_72 ez-toc-widget counter-hierarchy ez-toc-widget-container ez-toc-affix ez-toc-widget-direction"> <h3 class="widget-title"><span> <span class="ez-toc-title-container"> <style> #ezw_tco-2 .ez-toc-title{ font-size: 120%; font-weight: 500; color: #000; } #ezw_tco-2 .ez-toc-widget-container ul.ez-toc-list li a{ font-size: 120%; font-weight: 500; color: #000; } #ezw_tco-2 .ez-toc-widget-container ul.ez-toc-list li.active{ background-color: #ededed; } </style> <span class="ez-toc-title-toggle"> <span class="ez-toc-title " >目录</span><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Widget Easy TOC toggle icon"><span style="border: 0;padding: 0;margin: 0;position: absolute !important;height: 1px;width: 1px;overflow: hidden;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);clip-path: inset(50%);white-space: nowrap;">Toggle Table of Content</span><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></a> </span> </span> </span></h3> <nav> <ul class='ez-toc-list ez-toc-list-level-1 ' ><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#25E425BB258025E425B9258825E6259825AF_XML_DOM" title="什么是 XML DOM?">什么是 XML DOM?</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-2" href="#25E8258A258225E7258225B9" title="节点">节点</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#DOM_25E525AE259E25E425BE258B" title="DOM 实例">DOM 实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#25E62596258725E6259C25AC25E6258025BB25E6259825AF25E525AD259825E5258225A825E5259C25A825E62596258725E6259C25AC25E8258A258225E7258225B925E425B825AD" title="文本总是存储在文本节点中">文本总是存储在文本节点中</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-5" href="#XML_DOM_25E8258A258225E7258225B925E625A02591" title="XML DOM 节点树">XML DOM 节点树</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-6" href="#25E7258825B625E32580258125E525AD259025E52592258C25E52590258C25E725BA25A725E8258A258225E7258225B9" title="父、子和同级节点">父、子和同级节点</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#25E725AC25AC25E425B8258025E425B825AA25E525AD259025E8258A258225E7258225B9_25E225802593_25E6259C258025E52590258E25E425B8258025E425B825AA25E525AD259025E8258A258225E7258225B9" title="第一个子节点 – 最后一个子节点">第一个子节点 – 最后一个子节点</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-8" href="#25E825A725A325E6259E2590_XML" title="解析 XML">解析 XML</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-9" href="#25E92580259A25E825BF258725E525BE25AE25E825BD25AF25E7259A2584_XML_25E825A725A325E6259E259025E5259925A825E5258A25A025E825BD25BD_XML" title="通过微软的 XML 解析器加载 XML">通过微软的 XML 解析器加载 XML</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-10" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A" title="代码解释:">代码解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#25E5259C25A8_Firefox_25E5258F258A25E5258525B625E425BB259625E625B5258F25E825A7258825E5259925A825E425B825AD25E7259A2584_XML_25E825A725A325E6259E259025E5259925A8" title="在 Firefox 及其他浏览器中的 XML 解析器">在 Firefox 及其他浏览器中的 XML 解析器</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-12" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-2" title="代码解释:">代码解释:</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-3" title="代码解释:">代码解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-14" href="#25E825A725A325E6259E2590_XML_25E62596258725E425BB25B6_25E225802593_25E425B8258025E425B825AA25E825B725A825E625B5258F25E825A7258825E5259925A825E7259A258425E525AE259E25E425BE258B" title="解析 XML 文件 – 一个跨浏览器的实例">解析 XML 文件 – 一个跨浏览器的实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-15" href="#Error_Access_Across_Domains" title="Error: Access Across Domains">Error: Access Across Domains</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-16" href="#25E825A725A325E6259E2590_XML_25E525AD259725E725AC25A625E425B825B2_25E225802593_25E425B8258025E425B825AA25E825B725A825E625B5258F25E825A7258825E5259925A825E7259A258425E525AE259E25E425BE258B" title="解析 XML 字符串 – 一个跨浏览器的实例">解析 XML 字符串 – 一个跨浏览器的实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-17" href="#25E5258A25A025E825BD25BD25E5258725BD25E6259525B0" title="加载函数">加载函数</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-18" href="#25E725BC259625E725A8258B25E6258E25A525E5258F25A3" title="编程接口">编程接口</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-19" href="#XML_DOM_25E525B1259E25E6258025A7" title="XML DOM 属性">XML DOM 属性</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-20" href="#XML_DOM_25E6259625B925E625B32595" title="XML DOM 方法">XML DOM 方法</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-21" href="#25E525AE259E25E425BE258B" title="实例">实例</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-22" href="#25E825A725A325E92587258A25EF25BC259A" title="解释:">解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-23" href="#25E825A725A325E6259E2590_XML_25E62596258725E425BB25B6_25E225802593_25E825B725A825E625B5258F25E825A7258825E5259925A825E525AE259E25E425BE258B" title="解析 XML 文件 – 跨浏览器实例">解析 XML 文件 – 跨浏览器实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-24" href="#25E825A725A325E6259E2590_XML_25E525AD259725E725AC25A625E425B825B2_25E225802593_25E825B725A825E625B5258F25E825A7258825E5259925A825E525AE259E25E425BE258B" title="解析 XML 字符串 – 跨浏览器实例">解析 XML 字符串 – 跨浏览器实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-25" href="#25E825AE25BF25E9259725AE25E8258A258225E7258225B9" title="访问节点">访问节点</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-26" href="#getElementsByTagName_25E6259625B925E625B32595" title="getElementsByTagName() 方法">getElementsByTagName() 方法</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-27" href="#25E825AF25AD25E625B32595" title="语法">语法</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-28" href="#25E525AE259E25E425BE258B-2" title="实例">实例</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-29" href="#DOM_Node_List" title="DOM Node List">DOM Node List</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-30" href="#DOM_Node_List_Length" title="DOM Node List Length">DOM Node List Length</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-31" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A" title="例子解释:">例子解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-32" href="#Node_Type" title="Node Type">Node Type</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-33" href="#25E92581258D25E5258E258625E8258A258225E7258225B9" title="遍历节点">遍历节点</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-34" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-2" title="例子解释:">例子解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-35" href="#25E5258825A925E7259425A825E8258A258225E7258225B925E7259A258425E5258525B325E725B325BB25E825BF259B25E825A1258C25E525AF25BC25E8258825AA" title="利用节点的关系进行导航">利用节点的关系进行导航</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-36" href="#25E8258A258225E7258225B925E7259A258425E525B1259E25E6258025A7" title="节点的属性">节点的属性</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-37" href="#nodeName_25E525B1259E25E6258025A7" title="nodeName 属性">nodeName 属性</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-38" href="#nodeValue_25E525B1259E25E6258025A7" title="nodeValue 属性">nodeValue 属性</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-39" href="#25E425BE258B25E525AD2590_125EF25BC259A25E8258E25B725E5258F259625E52585258325E725B425A025E7259A258425E5258025BC" title="例子 1:获取元素的值">例子 1:获取元素的值</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-40" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-4" title="代码解释:">代码解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-41" href="#25E425BE258B25E525AD2590_225EF25BC259A25E6259B25B425E6259425B925E52585258325E725B425A025E7259A258425E5258025BC" title="例子 2:更改元素的值">例子 2:更改元素的值</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-42" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-5" title="代码解释:">代码解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-43" href="#nodeType_25E525B1259E25E6258025A7" title="nodeType 属性">nodeType 属性</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-44" href="#25E6259C258025E92587258D25E825A6258125E7259A258425E8258A258225E7258225B925E725B125BB25E5259E258B25E6259825AF25EF25BC259A" title="最重要的节点类型是:">最重要的节点类型是:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-45" href="#DOM_Node_List-2" title="DOM Node List">DOM Node List</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-46" href="#Node_List_Length" title="Node List Length">Node List Length</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-47" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-3" title="例子解释:">例子解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-48" href="#DOM_Attribute_List_Named_Node_Map" title="DOM Attribute List (Named Node Map)">DOM Attribute List (Named Node Map)</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-49" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-4" title="例子解释:">例子解释:</a></li></ul></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class="ez-toc-link ez-toc-heading-50" href="#XML_DOM_25E92581258D25E5258E258625E8258A258225E7258225B925E625A02591" title="XML DOM 遍历节点树">XML DOM 遍历节点树</a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-51" href="#25E525AE259E25E425BE258B-3" title="实例">实例</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-52" href="#25E92581258D25E5258E258625E8258A258225E7258225B925E625A02591" title="遍历节点树">遍历节点树</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-53" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-5" title="例子解释:">例子解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-54" href="#25E525AE259A25E425BD258D_DOM_25E8258A258225E7258225B9" title="定位 DOM 节点">定位 DOM 节点</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-55" href="#DOM_25E225802593_25E7258825B625E8258A258225E7258225B9" title="DOM – 父节点">DOM – 父节点</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-56" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-6" title="例子解释:">例子解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-57" href="#25E9258125BF25E52585258D25E725A925BA25E7259A258425E62596258725E6259C25AC25E8258A258225E7258225B9" title="避免空的文本节点">避免空的文本节点</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-58" href="#25E425BB25A325E725A0258125E825A725A325E92587258A25EF25BC259A-6" title="代码解释:">代码解释:</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-59" href="#25E8258E25B725E5258F259625E725AC25AC25E425B8258025E425B825AA25E52585258325E725B425A0" title="获取第一个元素">获取第一个元素</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-60" href="#25E425BE258B25E525AD259025E825A725A325E92587258A25EF25BC259A-7" title="例子解释:">例子解释:</a></li></ul></li></ul></li></ul></nav> </div> </div><div class="widget widget_user_list"><h3 class="widget-title"><span>优质作者</span></h3> <ul class="user-list-wrap"> <li class="user-list-item j-user-card" data-user="22"> <a href="https://www.chuangxiangniao.com/user/22" target="_blank"><img alt='卢松松的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250113064658923.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/22" target="_blank"> <span class="user-name-inner">卢松松</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/22"> <p class="user-list-desc">❤ 你关注的人,决定你看到的世界!❤ 关注草根创业、科技互联网、AI 人工智能、商业领域!</p> </a> </div> </li> <li class="user-list-item j-user-card" data-user="26"> <a href="https://www.chuangxiangniao.com/user/26" target="_blank"><img alt='蝙蝠侠IT的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250201090000313.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/26" target="_blank"> <span class="user-name-inner">蝙蝠侠IT</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/26"> <p class="user-list-desc">大连蝙蝠侠科技有限公司,品牌搜索营销专业机构,创始人蝙蝠侠IT,十六年专注企业搜索引擎营销与网站SEO优化,快速精准定位与解决企业网站搜索排名与品牌展现各种问题!</p> </a> </div> </li> <li class="user-list-item j-user-card" data-user="28"> <a href="https://www.chuangxiangniao.com/user/28" target="_blank"><img alt='2898站长资源平台的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250201134740598.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/28" target="_blank"> <span class="user-name-inner">2898站长资源平台</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/28"> <p class="user-list-desc">2898站长资源平台作为最全面的站长资源服务平台,致力于为广大站长和网站运营人员提供包含了友链交换、站长资讯、友情链接、网站交易、免费流量交换、站长工具、网站资源交换、软文投稿、软文推广等各个领域,是站长最好的选择。</p> </a> </div> </li> <li class="user-list-item j-user-card" data-user="29"> <a href="https://www.chuangxiangniao.com/user/29" target="_blank"><img alt='探索者SEO的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250209081137299.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/29" target="_blank"> <span class="user-name-inner">探索者SEO</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/29"> <p class="user-list-desc">探索者SEO团队:专业提供SEO网站排名优化,百度网站排名,SEO顾问,整站优化,网站优化,SEO诊断,关键词排名优化,网络营销推广,SEO诊断,等SEO外包服务。SEO外包,品牌维护,移动端手机排名!SEO快速排名,利用SEO使客户网站达到订单与品牌的飞跃!</p> </a> </div> </li> <li class="user-list-item j-user-card" data-user="30"> <a href="https://www.chuangxiangniao.com/user/30" target="_blank"><img alt='恒创科技的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250214043735695.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/30" target="_blank"> <span class="user-name-inner">恒创科技</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/30"> <p class="user-list-desc">恒创科技:海外数据中心服务商,APNIC/ARIN会员单位,专注香港服务器,香港云服务器,国外服务器,高防服务器,美国服务器等海外服务器租用托管服务,双向CN2,GIA+BGP高速网络服务。</p> </a> </div> </li> <li class="user-list-item j-user-card" data-user="31"> <a href="https://www.chuangxiangniao.com/user/31" target="_blank"><img alt='PHP中文网的头像' src='//cdn.chuangxiangniao.com/member/avatars/20250217034650194.jpg' class='avatar avatar-96 photo' height='96' width='96' /></a> <div class="user-list-content"> <div class="user-list-hd"> <a class="user-list-name" href="https://www.chuangxiangniao.com/user/31" target="_blank"> <span class="user-name-inner">PHP中文网</span> </a> </div> <a href="https://www.chuangxiangniao.com/user/31"> <p class="user-list-desc">php中文网提供大量免费、原创、高清的php视频教程,并定期举行公益php培训!可边学习边在线修改示例代码,查看执行效果!php从入门到精通,一站式php自学平台!</p> </a> </div> </li> </ul> </div><div class="widget widget_post_thumb"><h3 class="widget-title"><span>最新发布</span></h3> <ul> <li class="item"> <div class="item-content item-no-thumb"> <p class="item-title"><a href="https://www.chuangxiangniao.com/p/2491812.html" title="疯狂XML学习笔记(13)———XML DOM">疯狂XML学习笔记(13)———XML DOM</a></p> <p class="item-date">2025年3月5日</p> </div> </li> <li class="item"> <div class="item-content item-no-thumb"> <p class="item-title"><a href="https://www.chuangxiangniao.com/p/451265.html" title="2022年公司搬迁员工补偿标准(劳动法关于公司搬迁赔偿明细)">2022年公司搬迁员工补偿标准(劳动法关于公司搬迁赔偿明细)</a></p> <p class="item-date">2025年3月5日</p> </div> </li> <li class="item"> <div class="item-img"> <a class="item-img-inner" href="https://www.chuangxiangniao.com/p/2491810.html" title="xml学习(3) html显示xml"> <img width="480" height="300" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/images/lazy.png" class="attachment-default size-default wp-post-image j-lazy" alt="xml学习(3) html显示xml" decoding="async" data-original="https://cdn.chuangxiangniao.com/2025/03/20250304164625594.gif?imageMogr2/crop/480x300/gravity/center" /> </a> </div> <div class="item-content"> <p class="item-title"><a href="https://www.chuangxiangniao.com/p/2491810.html" title="xml学习(3) html显示xml">xml学习(3) html显示xml</a></p> <p class="item-date">2025年3月5日</p> </div> </li> <li class="item"> <div class="item-content item-no-thumb"> <p class="item-title"><a href="https://www.chuangxiangniao.com/p/2491807.html" title="XML—XML解析之DOM4J">XML—XML解析之DOM4J</a></p> <p class="item-date">2025年3月5日</p> </div> </li> <li class="item"> <div class="item-content item-no-thumb"> <p class="item-title"><a href="https://www.chuangxiangniao.com/p/2491806.html" title="php_xmlhttp乱码问题解决">php_xmlhttp乱码问题解决</a></p> <p class="item-date">2025年3月5日</p> </div> </li> </ul> </div><div class="widget widget_links"><h3 class="widget-title"><span>优质站点推荐</span></h3> <ul class='xoxo blogroll'> <li><a href="https://xin.chuangxiangniao.com/" rel="noopener" target="_blank">信用卡网</a></li> <li><a href="https://law.chuangxiangniao.com" rel="noopener" target="_blank">免费律师咨询</a></li> <li><a href="https://www.ankegu.com/" rel="noopener" target="_blank">发帖推广</a></li> <li><a href="https://bazhan.chuangxiangniao.com/" rel="noopener" target="_blank">扒站工具</a></li> <li><a href="https://www.wanghaihai.com/" rel="noopener" target="_blank">王海海</a></li> <li><a href="https://tools.chuangxiangniao.com/" rel="noopener" target="_blank">站长在线工具箱</a></li> <li><a href="https://links.chuangxiangniao.com" rel="noopener" target="_blank">自动外链工具</a></li> </ul> </div> </aside> </div> </div> <footer class="footer"> <div class="container"> <div class="footer-col-wrap footer-with-icon"> <div class="footer-col footer-col-copy"> <ul class="footer-nav hidden-xs"><li id="menu-item-4196" class="menu-item menu-item-4196"><a href="https://www.chuangxiangniao.com/ptgy">平台公约</a></li> <li id="menu-item-4192" class="menu-item menu-item-4192"><a href="https://www.chuangxiangniao.com/tgxz">投稿须知</a></li> <li id="menu-item-4201" class="menu-item menu-item-4201"><a href="https://www.chuangxiangniao.com/mzsm">免责声明</a></li> <li id="menu-item-4184" class="menu-item menu-item-4184"><a href="https://www.chuangxiangniao.com/bqsm">版权声明</a></li> <li id="menu-item-4185" class="menu-item menu-item-4185"><a href="https://www.chuangxiangniao.com/jbts">举报投诉</a></li> <li id="menu-item-4187" class="menu-item menu-item-4187"><a href="https://www.chuangxiangniao.com/about">关于我们</a></li> <li id="menu-item-152" class="menu-item menu-item-152"><a href="https://www.chuangxiangniao.com/contact">联系我们</a></li> <li id="menu-item-4186" class="menu-item menu-item-4186"><a href="https://www.chuangxiangniao.com/jqwcnrwlbhcys">加强未成年人网络保护倡议书</a></li> <li id="menu-item-407347" class="menu-item menu-item-407347"><a href="https://www.chuangxiangniao.com/dzwlyyshqljycys">抵制网络谣言、守护清朗家园</a></li> </ul> <div class="copyright"> <p>声明:本站仅提供信息存储空间服务,本站不拥有所有权,不承担相关法律责任。<br /> 如有侵犯您的版权,请联系我们,本站将在三个工作日内改正。<br /> 请附上版权证明邮件告知联系邮箱:253000106@qq.com<br /> Copyright ©2008 - 2025 创想鸟 版权所有 <a href="https://beian.miit.gov.cn" target="_blank" rel="nofollow noopener noreferrer">皖ICP备2024035995号-1</a></p> </div> </div> <div class="footer-col footer-col-sns"> <div class="footer-sns"> <a href="https://www.chuangxiangniao.com/sitemap/sitemap.xml" target="_blank" rel="nofollow" aria-label="icon"> <i class="wpcom-icon fa fa-sitemap sns-icon"></i> </a> </div> </div> </div> </div> </footer> <div class="action action-style-0 action-color-1 action-pos-1" style="bottom:300px;"> <div class="action-item j-share"> <i class="wpcom-icon wi action-item-icon"><svg aria-hidden="true"><use xlink:href="#wi-share"></use></svg></i> </div> <div class="action-item gotop j-top"> <i class="wpcom-icon wi action-item-icon"><svg aria-hidden="true"><use xlink:href="#wi-arrow-up-2"></use></svg></i> </div> </div> <script id="imwpf-this-page"> var g_this_page = { "type": "post", "id": 2491812, "terms": [{"id":172035,"tax":"category"},{"id":null,"tax":null},{"id":359805,"tax":"post_tag"}] };console.log(g_this_page); </script><div class="imwpcache_status_ok"></div><script type="text/javascript" id="main-js-extra"> /* <![CDATA[ */ var _wpcom_js = {"webp":"","ajaxurl":"https:\/\/www.chuangxiangniao.com\/wp-admin\/admin-ajax.php","theme_url":"https:\/\/www.chuangxiangniao.com\/wp-content\/themes\/justnews","slide_speed":"5000","is_admin":"0","lang":"zh_CN","js_lang":{"share_to":"\u5206\u4eab\u5230:","copy_done":"\u590d\u5236\u6210\u529f\uff01","copy_fail":"\u6d4f\u89c8\u5668\u6682\u4e0d\u652f\u6301\u62f7\u8d1d\u529f\u80fd","confirm":"\u786e\u5b9a","qrcode":"\u4e8c\u7ef4\u7801","page_loaded":"\u5df2\u7ecf\u5230\u5e95\u4e86","no_content":"\u6682\u65e0\u5185\u5bb9","load_failed":"\u52a0\u8f7d\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\uff01","expand_more":"\u9605\u8bfb\u5269\u4f59 %s"},"share":"1","share_items":{"wechat":{"title":"\u5fae\u4fe1","icon":"wechat"},"qq":{"title":"QQ\u597d\u53cb","icon":"qq"},"qzone":{"title":"QQ\u7a7a\u95f4","icon":"qzone"},"weibo":{"title":"\u5fae\u535a","icon":"weibo"},"douban":{"name":"douban","title":"\u8c46\u74e3","icon":"douban"},"mail":{"title":"\u90ae\u4ef6","icon":"mail-fill"}},"lightbox":"1","post_id":"2491812","user_card_height":"356","poster":{"notice":"\u8bf7\u300c\u70b9\u51fb\u4e0b\u8f7d\u300d\u6216\u300c\u957f\u6309\u4fdd\u5b58\u56fe\u7247\u300d\u540e\u5206\u4eab\u7ed9\u66f4\u591a\u597d\u53cb","generating":"\u6b63\u5728\u751f\u6210\u6d77\u62a5\u56fe\u7247...","failed":"\u6d77\u62a5\u56fe\u7247\u751f\u6210\u5931\u8d25"},"video_height":"484","fixed_sidebar":"1","dark_style":"2","font_url":"\/\/fonts.googleapis.com\/css2?family=Noto+Sans+SC:wght@400;500&display=swap","follow_btn":"<i class=\"wpcom-icon wi\"><svg aria-hidden=\"true\"><use xlink:href=\"#wi-add\"><\/use><\/svg><\/i>\u5173\u6ce8","followed_btn":"\u5df2\u5173\u6ce8","user_card":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/js/main.js?ver=6.19.5" id="main-js"></script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/js/icons-2.8.8.js?ver=6.19.5" id="wpcom-icons-js"></script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/themer/assets/js/comment-reply.js?ver=6.19.5" id="comment-reply-js"></script> <script type="text/javascript" id="wwa-js-extra"> /* <![CDATA[ */ var _wwa_js = {"ajaxurl":"https:\/\/www.chuangxiangniao.com\/wp-admin\/admin-ajax.php","post_id":"2491812","rewarded":""}; /* ]]> */ </script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/plugins/justweapp/js/script.js?ver=3.15.1" id="wwa-js"></script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js?ver=2.2.1" id="ez-toc-js-cookie-js"></script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js?ver=1.9.2" id="ez-toc-jquery-sticky-kit-js"></script> <script type="text/javascript" id="ez-toc-js-js-extra"> /* <![CDATA[ */ var ezTOC = {"smooth_scroll":"","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<i class=\"ez-toc-toggle-el\"><\/i>","chamomile_theme_is_on":""}; /* ]]> */ </script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js?ver=2.0.72-1737998962" id="ez-toc-js-js"></script> <script type="text/javascript" id="wpcom-member-js-extra"> /* <![CDATA[ */ var _wpmx_js = {"ajaxurl":"https:\/\/www.chuangxiangniao.com\/wp-admin\/admin-ajax.php","plugin_url":"https:\/\/www.chuangxiangniao.com\/wp-content\/plugins\/wpcom-member\/","post_id":"2491812","js_lang":{"login_desc":"\u60a8\u8fd8\u672a\u767b\u5f55\uff0c\u8bf7\u767b\u5f55\u540e\u518d\u8fdb\u884c\u76f8\u5173\u64cd\u4f5c\uff01","login_title":"\u8bf7\u767b\u5f55","login_btn":"\u767b\u5f55","reg_btn":"\u6ce8\u518c"},"login_url":"https:\/\/www.chuangxiangniao.com\/login?modal-type=login","register_url":"https:\/\/www.chuangxiangniao.com\/register?modal-type=register","errors":{"require":"\u4e0d\u80fd\u4e3a\u7a7a","email":"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u7535\u5b50\u90ae\u7bb1","pls_enter":"\u8bf7\u8f93\u5165","password":"\u5bc6\u7801\u5fc5\u987b\u4e3a6~32\u4e2a\u5b57\u7b26","passcheck":"\u4e24\u6b21\u5bc6\u7801\u8f93\u5165\u4e0d\u4e00\u81f4","phone":"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u624b\u673a\u53f7\u7801","terms":"\u8bf7\u9605\u8bfb\u5e76\u540c\u610f\u6761\u6b3e","sms_code":"\u9a8c\u8bc1\u7801\u9519\u8bef","captcha_verify":"\u8bf7\u70b9\u51fb\u6309\u94ae\u8fdb\u884c\u9a8c\u8bc1","captcha_fail":"\u4eba\u673a\u9a8c\u8bc1\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5","nonce":"\u968f\u673a\u6570\u6821\u9a8c\u5931\u8d25","req_error":"\u8bf7\u6c42\u5931\u8d25"}}; /* ]]> */ </script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/plugins/wpcom-member/js/index.js?ver=1.7.6" id="wpcom-member-js"></script> <script type="text/javascript" src="https://www.chuangxiangniao.com/wp-content/themes/justnews/js/wp-embed.js?ver=6.19.5" id="wp-embed-js"></script> <script> var _mtj = _mtj || []; (function () { var mtj = document.createElement("script"); mtj.src = "https://node12.aizhantj.com:21233/tjjs/?k=ly2ume9c5m7"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(mtj, s); })(); </script> <script> (function(){ var el = document.createElement("script"); el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?e1627df632cb7d8422ff5a171866ae673d0a9fd8a088d803a9d0f3c3bef0aa6adb92f43d4b1c8ff14071b55e1e71da09d918f66d1949fb3b81012c4e4e9e4a34644f149b0c276c07ebf664bf3622e408"; el.id = "ttzz"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(el, s); })(window) </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?357b28aff465596d316075fdd7393426"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "@id": "https://www.chuangxiangniao.com/p/2491812.html", "url": "https://www.chuangxiangniao.com/p/2491812.html", "headline": "疯狂XML学习笔记(13)———XML DOM", "description": "xml 文档对象模型定义访问和操作xml文档的标准方法。 DOM 将 XML 文档作为一个树形结构,而树叶被定义为节点。 什么是 XML DOM? XML DOM 是: 用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于…", "datePublished": "2025-03-05T00:46:32+08:00", "dateModified": "2025-03-05T00:46:32+08:00", "author": {"@type":"Person","name":"PHP中文网","url":"https://www.chuangxiangniao.com/user/31","image":"//cdn.chuangxiangniao.com/member/avatars/20250217034650194.jpg"} } </script> <script>console.log('命中缓存\n缓存页加载耗时: 0.0022s\n缓存页生成时间: 2025-03-05 00:46:38')</script></body> </html> <!--一键添加微信或拨打电话丨开始--> <!--一键添加微信或拨打电话丨结束--><!--cached by imwpcache 2025-03-05 00:46:38-->