【发布时间】:2014-06-23 10:06:54
【问题描述】:
我希望这不是一个重复的问题。我花了很多时间四处寻找可行的解决方案,但我没有运气。我要做的是遍历每个 xml 节点并取出一个特定的节点。为了实现这一点,我使用了 Ruby、Nikogiri 和 xpath。
所以我有一个看起来像这个 sitemap.xml 的简单 xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<url>
<loc>http://www.stackoverflow.com/questions/ask1/</loc>
</url>
<url>
<loc>http://www.stackoverflow.com/questions/ask2/</loc>
</url>
<url>
<loc>http://www.stackoverflow.com/questions/ask3/</loc>
</url>
所以我试图提取每个 .这是我的代码:
siteMap = 'sitemap.xml'
sm = File.open(siteMap)
docSM = Nokogiri::XML(sm)
siteMapLinks = docSM.xpath("/url/loc").inner_text
print siteMapLinks.to_s + "\n"
输出>
http://www.stackoverflow.com/questions/ask1/
如您所见,它不会输出所有节点/标签。我尝试将代码放在 for 循环中,但它所做的只是重复同一个节点。知道如何获得我想要的输出:
期望的输出>
http://www.stackoverflow.com/questions/ask1/
http://www.stackoverflow.com/questions/ask2/
http://www.stackoverflow.com/questions/ask3/
【问题讨论】: