gpt4 book ai didi

java - 如何基于 XML 节点构建 xpath 表达式

转载 作者:行者123 更新时间:2023-12-01 13:17:09 25 4
gpt4 key购买 nike

我正在尝试解决存在一个 xml 节点的问题,其中我事先不知道其内容,但我想为每个叶元素构建所有相关的 xpath。例如:

<parent>
<child1>
<subchild1></subchild1>
</child1>
<child2>
<subchild2></subchild2>
</child2>
</parent>

然后,代码将为每个叶节点提取相关的 xpath,在本例中为子子节点:

/parent/child1/subchild1
/parent/child2/subchild2

我已经寻找过任何库支持,但没有找到任何东西。有人有解决办法吗?

最佳答案

这是我在 groovy 中编写的一个解决方案:

def xml = new XmlSlurper().parseText("""<parent><child1><subchild1></subchild1></child1><child2><subchild2></subchild2></child2></parent>""")

def buildXPathFromParents = {
if (it.parent().is(it)) {"/" + it.name() } // If we are our own parent, then we are the highest node, so return our name.
else {call(it.parent())+ "/" + it.name() } // if we have a parent node, append our path to its path.
}

def endNodes = xml.depthFirst().findAll{!it.childNodes()} // find all nodes which dont have any children
def xPaths = endNodes.collect{buildXPathFromParents(it)}

print xPaths

Groovy4lyf

关于java - 如何基于 XML 节点构建 xpath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22377148/

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