XPath 连接多个节点

标签 xpath concatenation

我对 xpath 不是很熟悉。但我正在使用 xpath 表达式并将它们设置在数据库中。实际上它只是biztalk的BAM工具。

无论如何,我有一个 xml 看起来像:

<File>
  <Element1>element1<Element1>
  <Element2>element2<Element2>
  <Element3>
    <SubElement>sub1</SubElement>
    <SubElement>sub2</SubElement>
    <SubElement>sub3</SubElement>
  <Element3>
</File>

我想知道是否有办法使用 xpath 表达式来连接所有子元素?目前,我正在使用:
 /*[local-name()='File']/*[local-name()='Element3']/*[local-name()='SubElement']

如果它只有一个索引,这会起作用。但显然我的 xml 有时有更多节点,所以它给出了 NULL。我可以用
/*[local-name()='File']/*[local-name()='Element3']/*[local-name()='SubElement'][0]

但我需要所有节点。有没有办法做到这一点?

非常感谢!

编辑:我更改了 XML,我错了,它是不同的,它应该是这样的:
<item>
    <element1>el1</element1>
    <element2>el2</element2>
    <element3>el3</element3>
    <element4>
        <subEl1>subel1a</subEl1>
        <subEl2>subel2a</subEl2>
    </element4>
    <element4>
        <subEl1>subel1b</subEl1>
        <subEl2>subel2b</subEl2>
    </element4>
</item>

我需要有一行代码才能得到如下结果:“subel2a subel2b”;

我需要一行,因为我将此 xpath 表达式设置为 xml 属性(不是我的选择,它是指定的)。我尝试了字符串连接,但它并没有真正起作用。

最佳答案

string-join(/file/Element3/SubElement, ',')

关于XPath 连接多个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1974253/

相关文章:

dom - DOMDocument xpath查询图像扩展名不等于特定文本吗?

xml - 使用 XPath 选择节点以使用 JAXB 绑定(bind)类的子集

xml - 只想在XPath中选择大写文本

python - Selenium,通过 Xpath 获取元素 - 仅获取页面上的最后 60 个元素

c - 有没有办法在C中打印字符串,如下: puts ("this is a string" + variable);?

arrays - 使用 for 循环连接多个元胞数组?

linux - Linux上大量文件的快速串联

python - 将多个excel文件导入python pandas并将它们连接到一个数据帧中

python - 如何使用python从类中获取href?

mysql - php : show error on mysql query using concatenation