Проблемы с извлечением узлов xml с использованием пакета xml2 в R - PullRequest
0 голосов
/ 07 сентября 2018

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

Спасибо!

...