用Ruby解析XML文档
我正在使用REXML库用Ruby解析XML文档,xml,ruby,Xml,Ruby,我正在使用REXML库 <foo> <baa>value<baa> <foo> 价值 我想得到属于baa的价值 如何编码?试试这个 require 'rexml/document' doc = REXML::Document.new File.new('mydoc.xml') doc.elements('*/foo/baa') { |element| puts element.get_text } 需要“rexml/文档” doc=R
<foo>
<baa>value<baa>
<foo>
价值
我想得到属于baa的价值
如何编码?试试这个
require 'rexml/document'
doc = REXML::Document.new File.new('mydoc.xml')
doc.elements('*/foo/baa') { |element| puts element.get_text }
需要“rexml/文档”
doc=REXML::Document.new File.new('mydoc.xml')
doc.elements('*/foo/baa'){| element | put element.get_text}
我更喜欢Nokogiri和Hpricot宝石。如果需要,您可以尝试。需要“rexml/document”
require 'rexml/document'
xml = <<-EOS
<foo>
<baa>value</baa>
</foo>
EOS
doc = REXML::Document.new(xml)
doc.root.elements.each("baa") { |element| p element.text }
xml=Rishav的解决方案对我来说很有用
11:50:18 Temp$ ruby rx.rb
rx.rb:5:in `elements': wrong number of arguments (1 for 0) (ArgumentError)
from rx.rb:5
11:50:25 Temp$
11:50:18临时$ruby rx.rb
rx.rb:5:“元素”中:参数数量错误(1代表0)(ArgumentError)
从rx.rb:5
11:50:25温度$
以下是一些替代方法:
require 'rexml/document'
doc = REXML::Document.new DATA
doc.elements.each('//foo/baa') { |element| puts element.get_text }
baas = REXML::XPath.each(doc, '//foo/baa/text()') {|txt| p txt}
p baas
__END__
<foo>
<baa>value</baa>
</foo>
需要“rexml/文档”
doc=REXML::Document.new数据
每个('//foo/baa'){| element | put element.get_text}
baas=REXML::XPath.each(doc,//foo/baa/text()'){txt | ptxt}
p巴斯
__结束__
价值
我假设您的XML应该是“值”,即带有结束标记。