使用R中的xml2包提取xml节点时出现问题

时间:2018-09-06 22:46:50

标签: r xml xpath xml2

我正在尝试从XML文件中提取所有loc节点,该XML文件的格式如下:

<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错误吗?我真的很沮丧。

谢谢!

0 个答案:

没有答案