从R中的xmlTree中删除“xmlns”前缀(Remove “xmlns” prefix from xmlTree in R)

系统教程 行业动态 更新时间:2024-06-14 16:59:17
从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.)

更多推荐

本文发布于:2023-04-16 14:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/dzcp/72ecce6899e7e9b5c7604b5c14e1be85.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:前缀   xmlns   xmlTree   Remove   prefix

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!