R 中未定义的命名空间 xml2
Undefined namespace xml2 in R
我正在学习如何使用 R 来解析 XML,我正在尝试使用 Hadley 的 Wickham 的 xml2
包来解析 TEI XML 文本文档,位于 here(警告:这是一个压缩文件,我试图解析的特定文件在下面的代码中给出)。我试图弄清楚命名空间在这个包中是如何工作的(我无法理解我正在使用的特定文本的文档)。使用 XML
包,我可以执行以下操作:
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
我知道这是一个新包,但是有人知道如何在其中使用名称空间吗?
好的,我自己想出来了,但我想我会post在这里而不是删除问题。
library("xml2")
crisis2 <- read_xml("data/Crisis130_22.2.tei.xml")
all_divs <- xml_find_all(crisis2, "//d1:div", xml_ns(crisis2))
回想起来,我想答案是显而易见的,但是,正如我所说,我想我会 post 这里的解决方案,以防将来它对任何人有所帮助。
我正在学习如何使用 R 来解析 XML,我正在尝试使用 Hadley 的 Wickham 的 xml2
包来解析 TEI XML 文本文档,位于 here(警告:这是一个压缩文件,我试图解析的特定文件在下面的代码中给出)。我试图弄清楚命名空间在这个包中是如何工作的(我无法理解我正在使用的特定文本的文档)。使用 XML
包,我可以执行以下操作:
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
我知道这是一个新包,但是有人知道如何在其中使用名称空间吗?
好的,我自己想出来了,但我想我会post在这里而不是删除问题。
library("xml2")
crisis2 <- read_xml("data/Crisis130_22.2.tei.xml")
all_divs <- xml_find_all(crisis2, "//d1:div", xml_ns(crisis2))
回想起来,我想答案是显而易见的,但是,正如我所说,我想我会 post 这里的解决方案,以防将来它对任何人有所帮助。