我有一个简单的问题。我目前正在编写Nokogiri / Ruby脚本并拥有以下代码:
fullId = doc.xpath("/success/data/annotatorResultBean/annotations/annotationBean/concept/fullId")
fullId.each do |e|
e = e.to_s()
g.write(e + "\n")
end
这会吐出以下文字:
<fullId>D001792</fullId>
<fullId>D001792</fullId>
<fullId>D001792</fullId>
<fullId>D008715</fullId>
我想要“&lt; fullid&gt;”之间的数字文本保存,没有&lt; fullId&GT;,&LT; / fullId&GT;标记。我错过了什么?
鲍比答案 0 :(得分:10)
我认为你想使用text()访问器(返回子文本值),而不是to_s()(序列化整个节点,如你所见)。
我不确定你正在调用的g
对象write
是什么,但是下面的代码应该给你一个包含fullId节点中所有文本的数组:
doc.xpath(your_xpath).map {|e| e.text}