主页 > 人工智能  > 

XPath路径表达式

XPath路径表达式

1. 绝对路径表达式

语法:/根元素/子元素/子子元素... 特点**:**必须从根元素开始,完整地逐层写路径。 示例代码:

<!-- XML结构 --> <school> <class id="1"> <student>小明</student> <student>小红</student> </class> </school>

XPath表达式:/school/class/student 解析结果:所有 <class> 下的 <student> 节点(小明、小红)。


2. 相对路径表达式

语法:./子元素/子子元素...(开头的 ./ 可省略,直接写子元素路径) 特点:从当前节点开始,不需要以根为起点。 场景:当你在某个节点内部继续查找时使用。 示例: 假设当前节点是 <class>,想找它的子元素:

效果等同的写法:student 或 ./student。 解析结果:该 <class> 下的所有学生节点。
3. 全文搜索路径表达式(万能路径)

语法://元素 特点:跨层级全文搜索,无论元素在哪一层。 示例:

<library> <book> <title>Java入门</title> </book> <magazine> <title>科技周刊</title> </magazine> </library>

XPath表达式://title 解析结果:所有 <title> 节点(Java入门、科技周刊),无论它们在什么层级。


4. 条件筛选表达式 (1) 按属性存在性筛选

语法://元素[@属性名] 示例:

<products> <product id="1001" status="hot">手机</product> <product id="1002">耳机</product> </products>

XPath表达式://product[@status] 解析结果:筛选出有 status 属性的 <product> 节点(手机)。

(2) 按属性值筛选

语法://元素[@属性名=属性值] 示例://product[@id="1001"] 解析结果:找到 id="1001" 的 <product> 节点(手机)。


对比总结 表达式类型语法示例核心作用绝对路径/root/child严格逐层查找特定位置相对路径child 或 ./child从当前节点出发,向下查找全文搜索//element忽略层级,找到所有符合条件的元素条件筛选//element[@attr]根据属性或属性值过滤结果
实际应用练习

假设有以下 XML:

<students> <student id="101"> <name>张三</name> <score>90</score> </student> <student id="102"> <name>李四</name> <score grade="A">85</score> </student> </students> 找所有学生名字://name(结果:张三、李四)找第二个学生的分数:/students/student[2]/score(结果:<score grade="A">85</score>)找有 grade 属性的分数://score[@grade](结果:李四的分数节点)

如有具体疑问,请告诉我你卡在哪个点?可以用例子帮你分析! 😊

的语法。看完你一定能掌握核心要点!


1. 绝对路径表达式

语法:/根元素/子元素/子子元素... 特点**:**必须从根元素开始,完整地逐层写路径。 示例代码:

<!-- XML结构 --> <school> <class id="1"> <student>小明</student> <student>小红</student> </class> </school>

XPath表达式:/school/class/student 解析结果:所有 <class> 下的 <student> 节点(小明、小红)。


2. 相对路径表达式

语法:./子元素/子子元素...(开头的 ./ 可省略,直接写子元素路径) 特点:从当前节点开始,不需要以根为起点。 场景:当你在某个节点内部继续查找时使用。 示例: 假设当前节点是 <class>,想找它的子元素:

效果等同的写法:student 或 ./student。 解析结果:该 <class> 下的所有学生节点。
3. 全文搜索路径表达式(万能路径)

语法://元素 特点:跨层级全文搜索,无论元素在哪一层。 示例:

<library> <book> <title>Java入门</title> </book> <magazine> <title>科技周刊</title> </magazine> </library>

XPath表达式://title 解析结果:所有 <title> 节点(Java入门、科技周刊),无论它们在什么层级。


4. 条件筛选表达式 (1) 按属性存在性筛选

语法://元素[@属性名] 示例:

<products> <product id="1001" status="hot">手机</product> <product id="1002">耳机</product> </products>

XPath表达式://product[@status] 解析结果:筛选出有 status 属性的 <product> 节点(手机)。

(2) 按属性值筛选

语法://元素[@属性名=属性值] 示例://product[@id="1001"] 解析结果:找到 id="1001" 的 <product> 节点(手机)。


对比总结 表达式类型语法示例核心作用绝对路径/root/child严格逐层查找特定位置相对路径child 或 ./child从当前节点出发,向下查找全文搜索//element忽略层级,找到所有符合条件的元素条件筛选//element[@attr]根据属性或属性值过滤结果
实际应用练习

假设有以下 XML:

<students> <student id="101"> <name>张三</name> <score>90</score> </student> <student id="102"> <name>李四</name> <score grade="A">85</score> </student> </students> 找所有学生名字://name(结果:张三、李四)找第二个学生的分数:/students/student[2]/score(结果:<score grade="A">85</score>)找有 grade 属性的分数://score[@grade](结果:李四的分数节点)

如有具体疑问,请告诉我你卡在哪个点?可以用例子帮你分析! 😊

标签:

XPath路径表达式由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“XPath路径表达式