gpt4 book ai didi

ruby rexml 获取子元素

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:22 25 4
gpt4 key购买 nike

我需要使用 rexml 在 ruby​​ 中解析一个 xml 文档,它具有以下结构:

<events>
<event>
<title>Best NYC New Year's Party</title>
<description>Come spend New Year's Eve with us!</description>
<category>conferences</category>
<tags>new year, party</tags>
<start_date>2008-12-31 20:00:00</start_date>
<end_date>2009-01-01 06:00:00</end_date>
<venue>
<name>Madison Square Garden</name>
<address>4 Penn Plaza</address>
<city>New York</city>
<country>United States</country>
</venue>
</event>
</events>

我使用此代码获取title 和描述elements:

doc_xml.elements.each("events/event") do |element|
event = Event.new
event.title = element.elements["title"].text
event.description = element.elements["description"].text

我尝试了 event.address = element.elements["venue"].elements["address"] 但我得到了 nil:NilClass 的未定义方法“elements”。

但是如何访问 venue 元素中的 name 元素?

最佳答案

试试这个

event.address = element.elements["venue"].elements["address"].text unless element.elements["venue"].elements["address"].nil?

因为如果“venue”有一个元素“address”,你应该只使用 text 方法,否则返回 nil。

可以用同样的方法获取“name”元素:

event.name = element.elements["venue"].elements["name"].text unless element.elements["venue"].elements["name"].nil?

如果你必须用 XML 做更复杂的事情,我建议使用像 nokogiri 这样的解析器。

关于ruby rexml 获取子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com