我正在尝试从格式如下的 XML 文件中提取所有 loc 节点:
<urlset>
<url>
<loc>http://www.voa.org</loc>
<lastmod>2018-09-06T05:00:09-04:00</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
</urlset>
我已使用以下代码将其导入 R:
require(xml2)
doc <- read_xml("<urlset>
<url>
<loc>http://www.url.org</loc>
<lastmod>2018-09-06T05:00:09-04:00</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
</url>
</urlset>")
如果我使用 xpath "//*",R 会成功提取所有节点:
xml_find_all(doc,"//*")
{xml_nodeset (6)}
[1] <urlset>\n <url>\n <loc>http://www.url.org</loc>\n <lastmod>20 ...
[2] <url>\n <loc>http://www.url.org</loc>\n <lastmod>2018-09-06T05:00:0 ...
[3] <loc>http://www.url.org</loc>
[4] <lastmod>2018-09-06T05:00:09-04:00</lastmod>
[5] <changefreq>always</changefreq>
[6] <priority>1.0</priority>
但是,如果我使用 xpath "//loc" 来隔离所有 loc 节点,我什么也得不到:
xml_find_all(voa.sites,"//loc")
{xml_nodeset (0)}
我是否错误地输入了 xpath?我真的很难过。
谢谢!