gpt4 book ai didi

ruby-on-rails - 使用 Nokogiri 和正则表达式解析 Ruby XML 文档中的编码标签

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

我正在尝试使用嵌入在标签中的标签来解析 XML,例如使用 Nokigiri 和 Ruby 的标签:

<seg>Trennmesser <ph>&lt;I.FIGREF ITEM=&quot;3&quot; FORMAT=&quot;PARENTHESIS&quot;&gt;</ph><bpt i="1">&lt;I.FIGTARGET TARGET=&quot;CIADDAJA&quot;&gt;</bpt><ept i="1">&lt;/I.FIGREF&gt;</ept></seg>

在这种情况下,我只需要嵌入标签中不包含“Trennmesser”这个词。

在第二个例子中:

<seg>Hilfsmittel <ph>&lt;F34@Z7@Lge&gt;</ph>X <ph>&lt;F0&gt;</ph>= 0,5mm zwischen    Beschleunigerwalze <ph>&lt;F34@Z7@Lge&gt;</ph>D<ph>&lt;F0&gt;</ph> und Trennmesser schieben.</seg>

封闭的 /ph 和开放的 ph 标签中的单词也很有趣,因此正则表达式需要提取字符串 "Hilfsmittel 0,5mm zwischen Beschleunigerwalze und Trennmesser schieben.”并丢弃其他所有内容。

我这里也上传了一部分文档:
http://pastebin.com/Q8CdnASz

最佳答案

在 irb 中试试这个

require 'nokogiri'
x = Nokogiri::XML.parse('<seg>Hilfsmittel <ph>&lt;F34@Z7@Lge&gt;</ph>X <ph>&lt;F0&gt;</ph>= 0,5mm zwischen Beschleunigerwalze <ph>&lt;F34@Z7@Lge&gt;</ph>D<ph>&lt;F0&gt;</ph> und Trennmesser schieben.</seg>')
x.xpath('//seg').children.reject {|x| x.element?}.join {|x| x.content}

对我来说这个输出

=> "Hilfsmittel X = 0,5mm zwischen    Beschleunigerwalze D und Trennmesser schieben."

这里的想法是我们遍历 <seg> 的 child 标签,拒绝那些本身就是元素的元素( <ph> ),它应该只留下内容元素。获取结果数组,并将内容元素连接在一起作为一个字符串。

请注意,输出与您描述的略有不同,因为还有一个额外的 DX在两个标签之间。

关于ruby-on-rails - 使用 Nokogiri 和正则表达式解析 Ruby XML 文档中的编码标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8623784/

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