Я изучаю, как использовать R для разбора XML, и я пытаюсь использовать пакет Hackley Wickham's xml2
для анализа текстового документа TEI XML, расположенного here (предупреждение: это зашифрованный файл, конкретный, который я пытаюсь проанализировать, приведен в коде ниже). Я пытаюсь понять, как пространства имен работают в этом пакете (я не могу понять документацию для конкретного текста, который я использую). С XML
пакет, я мог бы сделать следующее:Неопределенное пространство имен xml2 в R
library("XML")
crisis <- xmlParse("data/Crisis130_22.2.tei.xml")
all_divs <- getNodeSet(crisis, "//def:div",
namespaces=c(def = "http://www.tei-c.org/ns/1.0"))
Я не могу понять, как сделать это с помощью xml2
, однако. Я либо получаю ошибку inherits(x, "xml_document") is not TRUE
, либо ошибку In node_find_all(x$node, x$doc, xpath = xpath, nsMap = ns) : Undefined namespace prefix [1219]
. Это то, что я пробовал:
library("xml2")
crisis2 <- read_xml("data/Crisis130_22.2.tei.xml")
# check to see whether TEI URL is present
xml_ns(crisis2)
all_divs2 <- xml_find_all(crisis2, "//div", xml_ns(crisis2)) # gives empty list
all_divs <- xml_find_all(crisis2, "/def:div", xml_ns(crisis2)) # undefined namespace error
Я знаю, что это новый пакет, но кто-нибудь знает, как использовать пространство имен в нем?