Я пытаюсь извлечь все узлы 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? Я действительно в тупик.
Спасибо!