[英]Namespace without prefix in XML in R
在R的 XML package 中,可以使用命名空間創建新的xmlTree ZA8CFDE63391BD59EB66696C:
library(XML)
d = xmlTree("foo", namespaces = list(prefix = "url"))
d$doc()
# <?xml version="1.0"?>
# <foo xmlns:prefix="url"/>
如何創建一個沒有前綴bar的默認命名空間,使其如下所示?
# <?xml version="1.0"?>
# <foo xmlns="url"/>
以下不會產生我所期望的。
library(XML)
d = xmlTree("foo", namespaces = list("url"))
d$doc()
# <?xml version="1.0"?>
# <url:foo xmlns:url="<dummy>"/>
R 中的無名列表和具有空名稱的列表之間似乎存在差異。
1 - 無名列表:
list("url")
# [[1]]
# [1] "url"
names(list("url"))
# NULL
2 - 命名列表:
list(prefix = "url")
# $prefix
# [1] "url"
names(list(prefix = "url"))
# [1] "prefix"
3 - 一個錯誤初始化的空名列表:
list("" = "url")
# Error: attempt to use zero-length variable name
4 - 一種初始化空名稱列表的 hacky 方法:
setNames(list(prefix = "url"), "")
# [[1]]
# [1] "url"
names(setNames(list(prefix = "url"), ""))
# [1] ""
看起來 1. 和 4. 是相同的,但是,在 package XML 中它們會產生不同的結果。 第一個給出了 OP 中提到的不正確的 XML,而選項 4. 產生:
library(XML)
d = d = xmlTree("foo", namespaces = setNames(list(prefix = "url"), ""))
d$doc()
# <?xml version="1.0"?>
# <foo xmlns="url"/>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.