【问题标题】:Get child nodes by searching for parent node using XPath通过使用 XPath 搜索父节点来获取子节点
【发布时间】:2014-04-01 18:39:18
【问题描述】:

我的 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

任何建议将不胜感激。

【问题讨论】:

    标签: java xml xpath


    【解决方案1】:

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

    这个:

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

    将获得 categoryType 节点。还有这个:

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

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

    【讨论】:

    • 谢谢,这行得通。但是想了解这些注释的用法,请您指导我查看任何可能有帮助的在线文档
    猜你喜欢
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多