首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中未定义的命名空间xml2

R中未定义的命名空间xml2
EN

Stack Overflow用户
提问于 2015-06-04 07:31:13
回答 1查看 1.2K关注 0票数 3

我正在学习如何使用R解析XML,并尝试使用Hadley的Wickham的xml2包来解析一个TEI文本文档,定位这里 (警告:这是一个压缩文件,我试图解析的特定文件在下面的代码中)。我试图了解名称空间在这个包中是如何工作的(我无法理解我正在使用的特定文本的文档)。使用XML包,我可以执行以下操作:

代码语言:javascript
复制
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]错误。这就是我试过的:

代码语言:javascript
复制
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

我知道这是一个新包,但有人知道如何在其中使用名称空间吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 07:37:42

好吧,我自己想出来了,但我想我应该把它发到这里,而不是删除这个问题。

代码语言:javascript
复制
library("xml2")
crisis2 <- read_xml("data/Crisis130_22.2.tei.xml")
all_divs <- xml_find_all(crisis2, "//d1:div", xml_ns(crisis2))

回想起来,我想答案是显而易见的,但正如我所说,我想我会在这里张贴解决方案,以防它在未来帮助任何人。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30637660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档