Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby-rexml-get元素子元素_Ruby_Xml_Rexml - Fatal编程技术网

ruby-rexml-get元素子元素

ruby-rexml-get元素子元素,ruby,xml,rexml,Ruby,Xml,Rexml,我需要使用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<

我需要使用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>
我尝试了
event.address=element.elements[“地点”].elements[“地址”]
,但我得到了nil:NilClass的未定义方法'elements'

但是如何访问
场馆
元素中的
名称
元素?

试试这个

event.address = element.elements["venue"].elements["address"].text unless element.elements["venue"].elements["address"].nil?
因为只有当“地点”有一个元素“地址”时才应该使用text方法,否则返回nil

您可以使用相同的方式获取“name”元素:

event.name = element.elements["venue"].elements["name"].text unless element.elements["venue"].elements["name"].nil?
如果您必须使用XML做更复杂的事情,我建议使用类似

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