在这样的xml中选择特定的xpath位置
我有这样的代码:在这样的xml中选择特定的xpath位置,xpath,Xpath,我有这样的代码: <List> <Header> <HeaderItem>ID</HeaderItem> <HeaderItem>Number</HeaderItem> <HeaderItem>State</HeaderItem> <HeaderItem>Name</HeaderItem> <
<List>
<Header>
<HeaderItem>ID</HeaderItem>
<HeaderItem>Number</HeaderItem>
<HeaderItem>State</HeaderItem>
<HeaderItem>Name</HeaderItem>
</Header>
<ListItem>
<Text>12345</Text>
<Text>1</Text>
<Text>1</Text>
<Text>Ex1</Text>
</ListItem>
<ListItem>
<Text>67890</Text>
<Text>2</Text>
<Text>1</Text>
<Text>Ex2</Text>
</ListItem>
</List>
但它同时选择“1”(在数字和状态下)。如何在状态下获取该值?这将返回“状态”列下的值: 如果您只需要最上面的一行,那么:
//ListItem[1]/Text[position()=count(/List/Header/HeaderItem[text()='State']/preceding-sibling::*)+1]
p.S.-
计数(/List/Header/HeaderItem[text()=“State']/前面的同级::*)+1
是从中获取元素位置的方法。如果你喜欢,那么值得投票。不清楚你想要什么,请编辑你的问题。首先,尝试更改html中的所有文本编号,使它们都是唯一的。第二,解释你到底想要这些唯一的数字中的哪一个,以及基于什么标准(比如-它在第一个列表项中,或者其他任何东西)。@JackFleeting这是我应用程序列表中的一个例子。我正在寻找一个有效的XPATH来选择一个元素,即第一个ListItem节点中标题“State”下的数字“1”。我问题中的当前XPATH返回两个元素:“数字”下的“1”和“状态”下的“1”。@Noxe This//List//ListItem/Text[3]/Text()
XPATH将返回State
列下的所有列值。这正是我需要的。谢谢
//ListItem/Text[position()=count(/List/Header/HeaderItem[text()='State']/preceding-sibling::*)+1]
//ListItem[1]/Text[position()=count(/List/Header/HeaderItem[text()='State']/preceding-sibling::*)+1]