如何在javascript DOM api中获取具有给定条件的子节点?
xml文件如下所示:如何在javascript DOM api中获取具有给定条件的子节点?,javascript,xml,dom,xpath,Javascript,Xml,Dom,Xpath,xml文件如下所示: <products> <product> <id>1</id> <name>pen</name> </product> <product> <id>2</id> <name>pencil</name> </product> </products> <employe
<products>
<product>
<id>1</id>
<name>pen</name>
</product>
<product>
<id>2</id>
<name>pencil</name>
</product>
</products>
<employees>
<employee>
<name>Jack</name>
<employee>
<employee>
<name>Mark</name>
<employee>
</employees>
1.
笔
2.
铅笔
杰克
做记号
我只能获取
节点,它们是
的子节点吗?javascript dom中是否有适合解析和遍历xml的xpath
api
var xmlObj = $.parseXML(xmlObj);
var nameNodes = xmlObj.find('product > name');
从医生那里 parseXML使用浏览器的本机解析函数 创建有效的XML文档。然后可以将此文档传递给 jQuery创建一个典型的jQuery对象,该对象可以被遍历和 操纵
在现代浏览器中,可以使用
querySelector
遍历xml树。假设您的xml驻留在div#xmlsample
中,那么此代码将为prodNames
中的//产品/名称
提供节点列表:
var xmlDoc = (new DOMParser())
.parseFromString(document.querySelector('#xmlsample').innerHTML,
"application/xml"),
prodNames = xmlDoc.querySelectorAll('product name');
看
我只能获取
节点,它们是
的子节点吗
提供的XML不是格式良好的XML文档(需要一个top元素)
另外,两个开始标记没有相应的结束标记
如果正确的XML文档是这样的:
<company>
<products>
<product>
<id>1</id>
<name>pen</name>
</product>
<product>
<id>2</id>
<name>pencil</name>
</product>
</products>
<employees>
<employee>
<name>Jack</name>
</employee>
<employee>
<name>Mark</name>
</employee>
</employees>
</company>
这将选择任何
名称
元素,该元素是任何产品
元素的子元素,该元素是任何产品
元素的子元素,该元素是XML文档顶部元素的子元素。太酷了!但是有没有关于这个的javascript本机实现呢?您要求提供一个经过修改的API。对于一些本机实现,请参阅。+1以获得真正好的格式化答案,我在ruby中使用nokogiri用于xpath,是否有对javascript的本机xpath支持,以及良好的适应性?@yozloy,如果您搜索“javascript xpath支持”,您将找到几个很好的链接,如下所示:
/*/products/product/name