gpt4 book ai didi

java - 如何获取 Xpath 表达式的子树?

转载 作者:行者123 更新时间:2023-12-02 00:38:11 24 4
gpt4 key购买 nike

如果说我有以下 XML 文件:

<title text=“title1">
<comment id=“comment1">
<data> this is part of comment one</data>
<data> this is some more of comment one</data>
</comment>
<comment id=“comment2”>
<data> this is part of comment two</data>
<data> this is some more of comment two</data>
<data> this is even some more of comment two</data>
</comment>
</title>

我得到了以下 XPath 查询:

/title/comment/@id

获取表达式所属子树的最佳方法是什么。

例如,上面的表达式将返回:

  • id="comment1"
  • id="comment2"

comment1 属于哪个子树:

    <comment id="comment1">
<data> this is part of comment one</data>
<data> this is some more of comment one</data>
</comment>

并且,comment2属于子树:

    <comment id=“comment2">
<data> this is part of comment two</data>
<data> this is some more of comment two</data>
<data> this is even some more of comment two</data>
</comment>

我想要这个的原因是这样我可以递归地调用 Xpath 表达式解析到的子树。

我正在使用 DOM 在 Java 中进行编码。

最佳答案

听起来 XPath 表达式在运行时之前是未知的。并且您想要获取 XPath 表达式选择的每个节点的父节点...是吗? <comment>元素是每个 comment/@id 的父元素属性。获取<comment> element 相当于获取其子树(后代),因为您可以使用进一步的 XPath 表达式或 DOM 函数提取其后代,或者您可以复制 <comment>元素及其后代

回答您的问题的一种方法是简单地将“/..”附加到 XPath 表达式的末尾。例如

"/title/comment/@id"

会变成

"/title/comment/@id/.."

这相当于 @Dan 的答案,但可以很容易地从 XPath 表达式中导出。

关于java - 如何获取 Xpath 表达式的子树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com