【问题标题】:Java xpath, select most deep childrenJava xpath,选择最深的孩子
【发布时间】:2012-04-06 13:26:11
【问题描述】:

我是 Java 和 XPath 语法的新手。我有复杂的 xml 文档。我需要的是选择所有没有子节点的节点(我实际上需要它们的值)。

<root>
    <a>
        <b>text1</b>
        <c>text2</c>
    </a>
    <d>
        <e>
            <f>text3</f>
        </e>
    </d>
    <f>text4</f>
</root>

我想在这里获取列表"text1","text2","text3","text4"。你能帮我解决xpath表达式吗?谢谢。

【问题讨论】:

    标签: java xml xpath


    【解决方案1】:

    好的,这就是我需要的

    root.selectNodes("//*[not(*)]")
    

    【讨论】:

      【解决方案2】:

      我需要的是选择所有没有子节点的节点

      我怀疑您的意思是要选择所有没有子元素的元素。那将是//*[not(*)]

      【讨论】:

        【解决方案3】:

        如果文件如上,试试//*/text();)

        【讨论】:

        • 太棒了,它有效!您能否也帮我获取这些节点名称? :)
        • 哦,实际上它的工作方式并不完全符合我的预期。我从每个节点获取文本,但我只需要从那些没有孩子的节点获取文本。我的意思是,我从 等中得到像“\n\t”这样的符号。
        猜你喜欢
        • 1970-01-01
        • 2013-06-19
        • 2015-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多