我一直在努力使用XPath
连接子节点值。
我们有一个带有父节点和三个子节点的XML文件,我想要实现的只是获取其中两个子节点并将它们的值连接为CHILDNODE1 [CHILDNODE2]
E.g。父节点看起来像这样
<Term>
<ID>24</ID>
<Code>abc</Code>
<Name>xyz</Name>
</Term>
XPath电话:Code[Name]
结果:abc[xyz]
几乎没有提及,我试图获得ArrayList
作为所有类似节点的结果,即不是循环遍历这些节点并逐个连接,而是在一个XPath查询中获取所有这些值(不是确定甚至可能。)
我想知道这是否可行,一些建议/例子真的很棒。
如果无法实现起诉XPath
那么将是其他选择。
答案 0 :(得分:1)
在 XPath 1.0 (Java本身支持的唯一一个)中,这仅适用于每个文件/ XPath调用的单个<Term/>
元素。
XPath表达式
concat(/Term/Code, '[', /Term/Name, ']')
将准确返回您正在寻找的内容。
如果有多个<Term/>
个节点,则必须使用XPath(<Term/>
)获取//Term
个节点,使用DOM获取相应的子节点并使用Java构造结果集
支持 XPath 2.0 (例如通过嵌入Saxon,BaseX或其他更强大的XPath / XQuery处理器),您也可以为任意数量的<Term/>
元素执行此操作一个文件(当然在公共父节点下):
for $term in //Term
return concat($term/code, '[', $term/name, ']')