我需要在特定模式(“someLocalFile.xsd”)之后将R输出直接转换为XML。使用'XML'包,是否可以从命名空间中删除“xmlns”前缀,以便我可以拥有以下内容:
<?xml version='1.0'?>
<Assessment xmlns:xsi="http://website.com" xsi:schemaLocation="someLocalFile.xsd">
<stock>10</stock>
<stock>20</stock>
<stock>30</stock>
</Assessment>
...
<Assessment xmlns:xsi="http://website.com" xmlns:xsi:schemaLocation="someLocalFile.xsd">
...
我的代码:
library(XML)
#
z = xmlTree("Assessment", namespaces = list(xsi = "http://website.com",
xsi:schemaLocation = "someLocalFile.xsd"),
doc = newXMLDoc())
#
z$addNode("stock", value = 10)
z$addNode("stock", value = 20)
z$addNode("stock", value = 30)
z$closeTag()
#
cat(saveXML(z))
答案 0 :(得分:0)
xsi:schemaLocation应该是属性,而不是命名空间定义。 所以
z = xmlTree("Assessment",
namespaces = c(xsi = "http://website.com"),
attrs = c('xsi:schemaLocation' = "someLocalFile.xsd"),
doc = newXMLDoc())
会做你想要的。 (您可以忽略有关缺少的命名空间定义的警告。)