我正在尝试基于xpath搜索来找到该节点中的xml文件中的值。我遇到的问题是我关注的节点的ID和正在寻找的值是同级,因此我无法遍历树。我想知道是否有办法做到这一点。
这是一个xml示例:
<class>
<student rollno = "393">
<firstname>Dinkar</firstname>
<lastname>Kad</lastname>
<nickname>Dinkar</nickname>
<marks>85</marks>
</student>
<student rollno = "493">
<firstname>Vaneet</firstname>
<lastname>Gupta</lastname>
<nickname>Vinni</nickname>
<marks>95</marks>
</student>
<student rollno = "593">
<firstname>Jasvir</firstname>
<lastname>Singh</lastname>
<nickname>Jazz</nickname>
<marks>90</marks>
</student>
</class>
基于此示例,我只想为Kad选择标记元素。
我的xpath搜索Kad作品
//student/lastname[text()="Kad"]
我希望如此
//student/lastname[text()="Kad"]/marks
返回85,但无法说它具有无效的令牌。
如何根据姓氏为“ Kad”或仅其他任何学生选择分数?
更新的代码:
<IMPORT xmlns="urn:Import">
<STUFF>
<STUFF_TYPE>
<STUFF_TYPE_KEY>1</STUFF_TYPE_KEY>
</STUFF_TYPE>
<WALMART>
<STORE>
<STORE_ID TYPE="SC" ID="SC-12345">WM000001</STORE_ID>
<STORE_STATUS>O</STORE_STATUS>
</STORE>
</WALMART>
</STUFF>
</IMPORT>
它适用于学生示例,但不适用于沃尔玛示例
答案 0 :(得分:1)
此XPath,
/class/student[lastname="Kad"]/marks
选择这些marks
元素中的student
个元素,并带有一个lastname
子元素,其子元素的字符串值为"Kad"
。
答案 1 :(得分:0)
您还可以通过相关student
元素的子元素获取值:
//student[lastname="Kad"]/child::*[4]