【发布时间】:2013-02-28 02:43:34
【问题描述】:
我正在使用 rest-client 从另一个网站返回 XML,并尝试使用 Nokogiri 来解析它。 XML 如下所示:
<?xml version="1.0" encoding="UTF-8"?> ...
<MXAUTOKESet>
<AUTOKEY>
<AUTOKEYID>27</AUTOKEYID>
<AUTOKEYNAME>WORKORDERNUM</AUTOKEYNAME>
<ORGID>xxxx</ORGID>
<PREFIX>12-</PREFIX>
<SEED>38979</SEED>
...
我想提取“PREFIX”和“SEED”数字。
我的视图代码如下所示:
<% xml_data = RestClient.get "URL (sorry can't display it in this question)" %>
<%= xml_doc = Nokogiri::XML(xml_data)%>
第二行在页面上显示返回的 XML,所以,我知道 rest-client 正在工作,但我不知道如何访问解析的 XML。
更新1:
我能够使用以下方法从 XML 标头中获取 creationDateTime。但是,我仍然无法获得 SEED 值:
<%= doc = Nokogiri::XML(xml_data)%>
<h4>Creation Date</h4>
<% root = doc.root %>
<%= root["creationDateTime"] %>
<h4>SEED</h4>
<%= seed = root.xpath("SEED").text %>
或
<%= seed = doc.xpath("//SEED").inner_text %>
【问题讨论】:
-
请不要把所有这些逻辑都放在你的视野中。
-
Mark - 它应该放在控制器还是模型中? (抱歉 - 我是新手)
-
@Reddirt 控制器。从控制器中的 XML 中提取您想要的片段,然后将它们放置在您希望在视图中看到的位置。
标签: ruby-on-rails ruby nokogiri