我有一些看起来像这样的 xml
<LongDescription Name="Detailed Specifications">
<Group GroupName="Model">
<Property Key="Brand" Value="xx" />
<Property Key="Model" Value="ss" />
</Group>
<Group GroupName="Spec">
<Property Key="Name" Value="aa" />
</Group>
<Group GroupName="Features">
<Property Key="Features" Value="qq" />
</Group>
</LongDescription>
我想获取属性Value
的值,其中Key='Name'
。在上面的 xml 中,答案是 aa
。我可以通过一个简单的 xpath 表达式来做到这一点吗?
我对xpath做了一些研究,我知道如何获取属性的值。但我不知道如何在 xpath 上应用 where 条件。经过网上google,我只找到了如何通过where条件获取标签的文本值
的方法,但这不是我想要的。
感谢您提前提供的帮助。
最佳答案
当然,你可以选择属性:
//Property[@Key='Name']/@Value
为了将 XPath 结果限制为特定的节点组,您可以使用[@attributeName='attributeValue']
表示法。
此示例表达式返回 Key
属性等于 name 的所有 Property
节点,并从此结果中选择 Value
属性。
为了获取实际值,您可以使用:
string(//Property[@Key='Name']/@Value)
这仅返回 aa
(带有您的示例 xml)。
关于java - 我可以在 xpath 上应用 where 条件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20652344/