XPath 是一门在 XML 文档中查找信息的语言。它可以用来在 XML 文档中查找和定位元素和属性。XPath 是 XSLT 中的主要语言,也用于 XQuery 和 XML Schema 等其他 XML 相关技术。
- 基础路径:XPath 路径只支持基础的绝对路径,每个步骤通过“/”分隔。例如:/acl/aclGroups/aclGroup。
- 谓词:只支持通过节点名称等于取值方式的谓词。例如:[genre=’Computer’],支持多个谓词,多个谓词之间是与的关系。
- 名字空间:XPath 支持名字空间,名字空间用冒号分隔。
- 查询条件:使用 XPath 表达式作为查询条件时,中“type”属性值为“XPath”,且必须存在“select”属性。其中,“select”属性的值即为 XPath 表达式。XPath 表达式用于查询此 XPath 下所有节点信息或符合特定条件的节点信息。
- 文本获取:使用 XPath 中的 text() 方法可以获取节点中的文本。例如://li[@class=’item-0’]/text()。
- 属性多值匹配:有时候某个节点的某个属性可能有多个值,例如 li 节点的 class 属性有 li 和 li-first 两个值。此时,如果还想用单纯的 @ 属性就不可以了,需要用到 contains() 函数来匹配属性值。例如://li[contains(@class, ‘li’)]/a/text()。
- 多属性匹配:多个属性确定一个节点时,需要同时匹配多个属性,此时要用到运算符 and 来连接。例如://li[contains(@class, ‘li’) and @name=’item’]/a/text()。
- 伪类选择器:XPath 也支持伪类选择器,用于选择特定状态的节点,例如选择第一个节点、选择最后一个节点、选择具有特定属性的节点等。
- 函数:XPath 包含一系列的函数,如 string()、boolean()、number()、count()、concat()、starts-with()、contains()、not() 等,这些函数可以在 XPath 表达式中使用,提供更强大的查询和操作功能。
- 上下文:XPath 的上下文决定了当前正在处理的节点和位置信息,可以通过特殊变量来引用这些信息。例如,$pos 表示当前位置信息,$size 表示节点集合的大小。
- 注意事项:在使用 XPath 时,需要注意避免陷入常见的陷阱和错误,如路径的歧义性、谓词的位置和优先级、命名空间的处理等。同时,也需要了解所使用的 XML 文档的结构和内容,以便更准确地定位和选择元素和属性。
总之,XPath 是一种强大而灵活的工具,可以用于在 XML 文档中进行复杂的选择、定位和操作任务。了解并掌握 XPath 的规范和技巧,可以帮助你更好地处理 XML 数据,提高工作效率和质量。