XmlSimple - 使用 xml_in() 解析 Ruby on Rails 中的数据

发布于 2024-12-07 22:33:34 字数 766 浏览 1 评论 0原文

我有一个像这样的简单 XML 文件:

    <Course>
     <CompanyName value="Ford"/>
     <DepartmentName value="assessments"/>
     <CourseName value="parts"/>
     <Result>
      <CoreData>
      <Status value="completed"/>

在我的控制器中,我有:

    def xml_facil
      require 'xmlsimple'
      config = XmlSimple.xml_in("#{Rails.root}/doc/TestResults/Ford/assessments/mike.xml", { 'KeyAttr' => 'value' })
      @results = config['CourseName']
    end

在我看来,我有:

    <%= render @results %>

但我得到的错误是:

    undefined method `formats' for nil:NilClass

我猜我的方法在这里返回 nil 那么我该如何修复这个问题,以便我的视图将呈现“部分” ?任何帮助表示赞赏!

I have a simple XML file like this:

    <Course>
     <CompanyName value="Ford"/>
     <DepartmentName value="assessments"/>
     <CourseName value="parts"/>
     <Result>
      <CoreData>
      <Status value="completed"/>

In my controller I have:

    def xml_facil
      require 'xmlsimple'
      config = XmlSimple.xml_in("#{Rails.root}/doc/TestResults/Ford/assessments/mike.xml", { 'KeyAttr' => 'value' })
      @results = config['CourseName']
    end

In my view I have:

    <%= render @results %>

but the error I get is:

    undefined method `formats' for nil:NilClass

I guess my method is returning nil here so how do I fix this so my view will render "parts"? Any help is appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

以可爱出名 2024-12-14 22:33:34

由于您已切换到 Nokogiri,因此您可以通过以下方式挖掘出您感兴趣的 value 属性:

require 'nokogiri'
doc   = Nokogiri::XML(open("#{Rails.root}/doc/TestResults/Ford/assessments/mike.xml").read)
value = doc.at('CourseName').attr('value')

Since you've switched to Nokogiri, you can dig out the value attribute that you're interested in with this:

require 'nokogiri'
doc   = Nokogiri::XML(open("#{Rails.root}/doc/TestResults/Ford/assessments/mike.xml").read)
value = doc.at('CourseName').attr('value')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文