通过使用XPath搜索父节点来获取子节点

时间:2014-04-01 18:39:19

标签: java xml xpath

我的XML结构如下

<Employee>
    <categoryType>Name</categoryType>
    <groupNames>
        <name>ABC</name>
        <name>XYZ</name>
        <name>PQR</name>
    </groupNames>
</Employee>

我试图通过搜索父节点(categoryType = Name)来获取子节点。

尝试使用以下所有组合,但没有一个返回子节点。

  • //*[contains(@categoryType,'Name')]/groupNames
  • Employee/*(@categoryType,'Name')/groupNames

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您正在匹配不存在的属性 categoryType。您必须匹配元素。将@categoryType替换为categoryType,您将获得不同的结果。

此:

//*[contains(categoryType,'Name')]/groupNames

将获取categoryType节点。这个:

//*[contains(categoryType,'Name')]/groupNames/name

将返回一个包含所有三个名称的节点集。