从R中的xmlTree中删除“xmlns”前缀(Remove “xmlns” prefix from xmlTree in R)
我需要在特定模式(“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))I need to translate R output directly into XML following a specific schema ("someLocalFile.xsd"). Using the 'XML' package, is it possible to remove the "xmlns" prefix from a namespace so I can have the following:
Desired Output
<?xml version='1.0'?> <Assessment xmlns:xsi="http://website.com" xsi:schemaLocation="someLocalFile.xsd"> <stock>10</stock> <stock>20</stock> <stock>30</stock> </Assessment>Current Output
... <Assessment xmlns:xsi="http://website.com" xmlns:xsi:schemaLocation="someLocalFile.xsd"> ...My code:
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))最满意答案
xsi:schemaLocation应该是属性,而不是命名空间定义。 所以
z = xmlTree("Assessment", namespaces = c(xsi = "http://website.com"), attrs = c('xsi:schemaLocation' = "someLocalFile.xsd"), doc = newXMLDoc())会做你想做的。 (您可以忽略有关缺少的命名空间定义的警告。)
The xsi:schemaLocation should be an attribute, not a namespace definition. So
z = xmlTree("Assessment", namespaces = c(xsi = "http://website.com"), attrs = c('xsi:schemaLocation' = "someLocalFile.xsd"), doc = newXMLDoc())will do what you want. (You can ignore the warning about the missing namespace definition.)
更多推荐
发布评论