gpt4 book ai didi

ruby - 使用 REXML XPath 按顺序获取元素

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:14 25 4
gpt4 key购买 nike

我想遍历所有 <HeadA><HeadB> XML 文件中的元素,并为每个元素添加一个唯一的 ID。到目前为止我尝试过的方法是:

@xml.each_element('//HeadA | //HeadB') do |heading|
#add a new id
end

问题是,来自 XPath 的节点集 //HeadA | //HeadB是所有HeadA s 后跟所有 HeadB秒。我需要的是所有 HeadA 的有序列表s 和 HeadB按照它们在文档中出现的顺序排列。

澄清一下,我的 XML 可能如下所示:

<Doc>
<HeadA>First HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadA>Second HeadA</HeadA>
<HeadB>Second HeadB</HeadB>
</Doc>

我从 XPath 得到的是:

  <HeadA>First HeadA</HeadA>
<HeadA>Second HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadB>Second HeadB</HeadB>

当我需要得到的是有序的节点时:

  <HeadA>First HeadA</HeadA>
<HeadB>First HeadB</HeadB>
<HeadA>Second HeadA</HeadA>
<HeadB>Second HeadB</HeadB>

这样我就可以按顺序添加 ID。

最佳答案

好的,第二次尝试,但我想我这次成功了:P

@xml.each_element('//*[self::HeadA or self::HeadB]') do |heading|
puts heading.text
end

关于ruby - 使用 REXML XPath 按顺序获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4184683/

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