ruby-on-rails – 使用Nokogiri和regex在Ruby XML文档中解析编码
发布时间:2020-12-17 02:12:35 所属栏目:百科 来源:网络整理
导读:我试图用嵌入在标签中的标签来解析 XML,比如使用Nokigiri和 Ruby的标签: segTrennmesser phlt;I.FIGREF ITEM=quot;3quot; FORMAT=quot;PARENTHESISquot;gt;/phbpt i="1"lt;I.FIGTARGET TARGET=quot;CIADDAJAquot;gt;/bptept i="1"lt;/I.FIGREFgt;/ept/seg
我试图用嵌入在标签中的标签来解析
XML,比如使用Nokigiri和
Ruby的标签:
<seg>Trennmesser <ph><I.FIGREF ITEM="3" FORMAT="PARENTHESIS"></ph><bpt i="1"><I.FIGTARGET TARGET="CIADDAJA"></bpt><ept i="1"></I.FIGREF></ept></seg> 在这种情况下,我只需要“嵌入式标签”中的“Trennmesser”一词. 在第二个例子中: <seg>Hilfsmittel <ph><F34@Z7@Lge></ph>X <ph><F0></ph>= 0,5mm zwischen Beschleunigerwalze <ph><F34@Z7@Lge></ph>D<ph><F0></ph> und Trennmesser schieben.</seg> 封闭/ ph和开放ph标签内的单词也很有趣,因此正则表达式需要提取字符串“Hilfsmittel 0,5mm zwischen Beschleunigerwalze und Trennmesser schieben”.并丢弃其他一切. 我还在这里上传了部分文件: 解决方法
在irb中尝试这个
require 'nokogiri' x = Nokogiri::XML.parse('<seg>Hilfsmittel <ph><F34@Z7@Lge></ph>X <ph><F0></ph>= 0,5mm zwischen Beschleunigerwalze <ph><F34@Z7@Lge></ph>D<ph><F0></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>的孩子了.标签,拒绝那些元素本身(< ph>),这应该只留下内容元素.获取结果数组,并将内容元素作为一个字符串连接在一起. 请注意,输出与您描述的略有不同,因为两个标签之间还有一个额外的D和X. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |