<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>jyasa (Jyasa)</title>
    <link>https://ruby-china.org/jyasa</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>嵌套 XML 解析</title>
      <description>&lt;p&gt;是这样的，我遇到一个 XML，XML 的 item 里通过 guid 又包含了一个 xml 的链接地址，相当于 XML 里又嵌套了一个 XML&lt;/p&gt;

&lt;p&gt;这个 xml 格式如下：&lt;/p&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;item&lt;/span&gt; &lt;span class="na"&gt;xmlns:aton=&lt;/span&gt; &lt;span class="s"&gt;……&lt;/span&gt;
    &lt;span class="err"&gt;&amp;lt;guid……&lt;/span&gt;
    &lt;span class="err"&gt;……&lt;/span&gt;
    &lt;span class="err"&gt;&amp;lt;description&lt;/span&gt;
    &lt;span class="err"&gt;&amp;lt;media:group&lt;/span&gt;
        &lt;span class="err"&gt;&amp;lt;media:content&lt;/span&gt;
        &lt;span class="err"&gt;…&lt;/span&gt;
    &lt;span class="err"&gt;……&lt;/span&gt;
&lt;span class="err"&gt;&amp;lt;/item&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;item 直接为根节点&lt;/p&gt;

&lt;p&gt;然后用 RSS::Parser.parse 读外层 XML 没有问题，读嵌套的这个 XML 就出了问题&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;ifeed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;guid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;content&lt;/span&gt;

  &lt;span class="n"&gt;icontent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;""&lt;/span&gt;
  &lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ifeed&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;is&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
    &lt;span class="n"&gt;icontent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;is&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;read&lt;/span&gt;
  &lt;span class="k"&gt;end&lt;/span&gt;

  &lt;span class="n"&gt;irss&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;RSS&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;Parser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;icontent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"content：#&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;irss&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
  &lt;span class="nb"&gt;puts&lt;/span&gt; &lt;span class="s2"&gt;"irss #&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="si"&gt;#{&lt;/span&gt;&lt;span class="n"&gt;irss&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里 icontent 能打印出来这个 xml 里的内容
但 irss 就为空&lt;/p&gt;

&lt;p&gt;求教，Ruby 里面如何解析这个嵌套的 XML&lt;/p&gt;</description>
      <author>jyasa</author>
      <pubDate>Thu, 08 Aug 2013 02:23:48 +0800</pubDate>
      <link>https://ruby-china.org/topics/13145</link>
      <guid>https://ruby-china.org/topics/13145</guid>
    </item>
  </channel>
</rss>
