java - 我可以在 xpath 上应用 where 条件吗?

标签 java xml xpath

我有一些看起来像这样的 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/

相关文章:

XPath 寻找子树

java - java中如何从父类对象加载子对象

xml - XSD 唯一元素 XPath 限制

java - 由: org. springframework.beans.PropertyBatchUpdateException : Could not load JDBC driver class [oracle. jdbc.driver.OracleDriver引起]

java - Hibernate 中的未知实体

python - 使用 lxml 动态创建 xml

java - MM/dd/yyyy 格式的 xmlgregoriancalendar

java - 如何在映射 :util element in a spring xml file when the string is defined in the same file? 中引用字符串变量

java - java内存不足异常

java - 从 jsoup 解析中省略链接、广告等