AJAX--XPATH

本文介绍了XPath作为XML路径语言在AJAX中的使用,详细阐述了如何通过XPath查找XML文档中的作者节点、属性节点、文本节点以及满足特定条件的元素节点。文中列举了多个示例,展示了XPath在DOM树搜索中的不同方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

XPATH即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath可以通过树状结构来XML,有不同类型的节点,包括元素节点,属性节点和文本节点,提供在数据结构树中找寻节点的能力。起初 XPath 的提出的初衷是将其作为一个通用的、介于XPointer与XSLT间的语法模型。但是 XPath 很快的被开发者采用来当作小型查询语言。
这里写图片描述

内容

要想找到所有的author元素节点,就必须表示出元素节点在DOM树中的路径,查找路径的方法有:
结对路径/books/book/author
相对路径book/author
全文档搜索法//author //book/author
举个例子:

<books>
    <book isdn="0001">
        <author>Wang</author>
        <name>AJAX Professional</name>
        <price>35</price>
    </book>
    <book isdn="0002">
        <author>Lee</author>
        <name>AJAX In Action</name>
        <price>65</price>
    </book>
    <book isdn="0003">
        <author>Zhu</author>
        <name>AJAX For Dummies</name>
        <price>60</price>
    </book>
</books>

查找所有的author节点

var author1 = selectNodes(rootElement,"/books/book/author");
var author2 = selectNodes(rootElement,"book/author");
var author3 = selectNodes(rootElement,"//author");
var author4 = selectNodes(rootElement,"//book/author");

获取所有isdn属性节点(先找到包含属性的元素节点)

var isdn1 = selectNodes(rootElement,"/books/book/@isdn");
var isdn2 = selectNodes(rootElement,"book/@isdn");
var isdn3 = selectNodes(rootElement,"//book/@isdn");
var isdn4 = selectNodes(rootElement,"//books/book/@isdn");

获取所有name节点中的文本节点(找到包含文本节点的元素节点)

var text1 = selectNodes(rootElement,"/books/book/name/text()");
var text2 = selectNodes(rootElement,"book/name/text()");
var text3 = selectNodes(rootElement,"//book/name/text()");
var text4 = selectNodes(rootElement,"//name/text()");

有isdn属性的book节点(找到元素节点,然后在添加条件表达式)

var book = selectNodes(rootElement,"/books/book[@isdn]");
var book = selectNodes(rootElement,"book[@isdn]");
var book = selectNodes(rootElement,"//book[@isdn]");

获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在中括号内)

var book = selectNodes(rootElement,"/books/book[@isdn='0002'][price>35]");
var book = selectNodes(rootElement,"book[@isdn='0002'][price>35]");
var book = selectNodes(rootElement,"//book[@isdn='0002'][price>35]");

获得子节点price值大于35且isdn等于0002的所有book节点(找到元素节点,然后每一个查询条件写在一个XPATH的表达式,这些表达式用丨组合,表式或关系)

var book = selectNodes(rootElement,"/books/book[@isdn='0002']|/books/book[price>35]");
var book = selectNodes(rootElement,"book[@isdn='0002']|/books/book[price>35]");
var book = selectNodes(rootElement,"//book[@isdn='0002']|/books/book[price>35]");

总结

以上这些是我总结的关于DOM树路径查找方法,希望大神们再给出一些,我将在看到的第一时间更新!

end

谢谢您的阅读!

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值