我有一个xml,我想创建一个脚本,删除它的一部分,只保留受限的部分。我有R,Python和Ruby。你知道我怎么做吗?我很感激代码建议,因为我的编码技巧相当有限:D xml有点像下面这样:
<xml><sometag><somemoretag></somemoretag></sometag><records><somedetails></somedetails><somedetails2></somedetails2></records>
我希望结果为:
<xml><records><somedetails></somedetails><somedetails2></somedetails2></records>
非常感谢。
答案 0 :(得分:0)
我刚刚解决了这个问题。可能有更优雅的方式处理它,但由于R是我的首选,我做了:
require('XML')
a <- toString.XMLNode(xmlObject)
b <- gsub(oldString, newString, a, perl=TRUE)
c <- xmlTreeParse(b)
toString.XMLNode
将XML转换为字符串。 gsub
使用正则表达式将oldString
替换为newString
。然后xmlTreeParse
将b
变回XML对象。
以下编辑:我没有正确阅读您的问题。以上内容将帮助您以非常自定义的方式更改XML。但在您的情况下,将XML转换为树并导航树更容易。
require('XML')
#Note that your code did not have a final </xml> -- I added that.
p <- xmlParse('<xml><sometag><somemoretag></somemoretag></sometag><records><somedetails></somedetails><somedetails2></somedetails2></records></xml>')
q <- getNodeSet(p, '/xml/records')
q
[[1]]
<records>
<somedetails/>
<somedetails2/>
</records>
attr(,"class")
[1] "XMLNodeSet
通过键入要作为getNodeSet
的第二个参数的节点的路径,您可以将树导航到所需的位置。