我有这个xml文档
require(XML)
url <- "http://stats.oecd.org/restsdmx/sdmx.ashx/GetData/SNA_TABLE1/NOR+CAN+FRA+DEU+GBR+USA+ITA+JAP.B1_GA+B1G_P119+B1G+B1GVA+B1GVB_E+B1GVC+B1GVF+B1GVG_I+B1GVJ+B1GVK+B1GVL+B1GVM_N+B1GVO_Q+B1GVR_U+D21_D31+D21S1+D31S1+DB1_GA.CXC/all?startTime=1950&endTime=2013"
xml <- xmlParse(url)
我想尝试访问。
我可以使用
访问根元素getNodeSet(xml, "//message:MessageGroup")
然后我不能下三个来解析所有元素DataSet/Series
。
getNodeSet(xml, "//message:MessageGroup/DataSet/Series")
返回一个空列表。这是文档命名空间的问题吗?
答案 0 :(得分:2)
是。问题在于默认命名空间。您需要为其命名,以便能够从中选择节点。你可以做这样的事情
xml <- xmlParse(url)
ns<-xmlNamespaceDefinitions(xml, simplify=T)
names(ns)[1] <- "def" #assign name "def"
然后你可以做
getNodeSet(xml, "//message:MessageGroup/def:DataSet/def:Series", namespaces=ns)