您好我正在使用LibXML来解析RSS Feed,我想知道是否可以使用点语法访问内容(或者同样简单)。
所以,如果我有:
<post>
<created_at>Sat Aug 09 05:38:12 +0000 2008</created_at>
<id>882281424</id>
<text>I so just thought the guy lighting the Olympic torch was falling when he began to run on the wall. Wow that would have been catastrophic.</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
</post>
我可以像
那样访问它text = post.text
答案 0 :(得分:3)
没有。最简单的方法是使用XPath。例如,要获取作为“post”节点的子节点的所有“text”节点的list:
doc = parser.parse
text_node = doc.find('/post/text') #returns all children
或者获得第一个(仅限本案例)节点:
doc = parser.parse
text_node = doc.find_first('/post/text') #returns first child only
答案 1 :(得分:1)
如果您准备进行一些设置工作,那么您可能会发现HappyMapper很有用。
你声明一个类及其映射(或至少你感兴趣的部分) - 在你的情况下它可能看起来像这样
class Post
include HappyMapper
element :text, String
end
使用类似这样的东西:
posts = Post.parse(File.read(path_to_rss.xml))
posts.each do |post|
puts post.text
end
所有完全未经测试的,我害怕...