Пакет `xml2` R не собирает несколько документов xml через XInclude - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь прочитать файл xml, который использует XInclude для сборки xml из нескольких файлов xml. например, если у меня есть 2 xml файлов с именами "parent. xml" и "child. xml", которые выглядят так:

файл с именем "parent. xml"

<foo xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="child.xml"/>
</foo>

файл с именем "child. xml"

<bar>hi bar</bar>

, когда я пытаюсь прочитать их с помощью xml2 примерно так

x <- xml2::read_xml("parent.xml", options = c("XINCLUDE"))
xml2::write_xml(x, file = "xml2.xml")

my "xml2. xml "Выходной файл выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<foo xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="child.xml"/>
</foo>

Проблема в том, что содержимое" child. xml "не включено в вывод (в нем по-прежнему есть тег <xi:include>). Я пробовал разные варианты, но не повезло.

Пакет XML R работает так, как я и ожидал. например,

x <- XML::xmlParse("parent.xml", options = c(XINCLUDE)) 
XML::saveXML(x,  file = "XML.xml")

выглядит как

<?xml version="1.0"?>
<foo xmlns:xi="http://www.w3.org/2001/XInclude">

  <bar>hi bar</bar>

</foo>

Прошу прощения за мое xml невежество и большое спасибо за вашу помощь!

...