如何使用XML获取一个非常简单的元素?

时间:2014-09-26 04:45:25

标签: ruby rexml

我正在努力弄清楚XPath和REXML,我尝试过的每一件事,甚至从书本上复制,都会返回零。我试图尽可能简单地输出数据...我的文件看起来像

<profile>
    <userid>3002</userid>
</profile>

我希望得到3002。我到底做了什么?

2 个答案:

答案 0 :(得分:0)

如果您发布代码会更好。 好吧,只是为了向你展示方向,试试这个:

require 'rexml/document'

xml = '<profile>
         <userid>3002</userid>
       </profile>'

doc = REXML::Document.new xml
item = REXML::XPath.first(doc, '//profile/userid').text
p item
#=> 3002

它在userid中找到第一个profile元素,并将其作为文本。

答案 1 :(得分:0)

你也可以使用优秀的Nokogiri宝石。以下是我对此进行编码的方式 -

require 'nokogiri'

xml = '<profile>
         <userid>3002</userid>
      </profile>'

doc = Nokogiri::XML.parse xml
p doc.at('userid').text
# => "3002"