0

我正在尝试从格式如下的 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?我真的很难过。

谢谢!

4

0 回答 0