gpt4 book ai didi

c - 使用 XPath 返回多个节点的串联属性值字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:30 25 4
gpt4 key购买 nike

我正在使用 libxml2 开发一个 C 项目。

我保留了以下形式的 XML 文档:

<?xml version="1.0">
<rootnode version="1.0">
<rootchild attribute1="a" attribute2="12345678" />
<rootchild attribute1="b" attribute2="ABCDEFGH" />
</rootnode>

我想获得一串以逗号作为分隔符的串联属性 2 值,因此对于上面的示例,字符串将是:"12345678,ABCDEFGH"

我想使用 XPath 尽可能接近该字符串。到目前为止,我能做的最好的就是使用以下表达式获取节点:/rootnode/rootchild/attribute::attribute2

string() 包裹上面似乎只返回第一个 attribute2 值。

  1. 是否可以使用 string() 函数获取多个 attribute2 值?
  2. 是否可以使用 XPath 连接由定界符分隔的多个值?

最佳答案

使用 XPath 2.0,您可以使用 /rootnode/rootchild/attribute::attribute2/string() 获取字符串值序列或 string-join(/rootnode/rootchild/attribute::attribute2, ',') 到单个字符串,但 libxml2 只支持 XPath 1.0,因此您需要评估 /rootnode/rootchild/attribute::attribute2 然后获取字符串每个属性的值,并以您的宿主语言 (C) 连接这些值。

关于c - 使用 XPath 返回多个节点的串联属性值字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055472/

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