0

<offering>我有一个包含很多元素的大型 XML 文件(180 兆左右) 。我想删除所有<offering>没有与某个事物(<parent_id>12345</parent_id>)匹配的子元素的 s。我从未使用过 Xquery,它看起来有点吓人(阅读:比我想象的要复杂得多)。任何人都可以推荐一个可以让我轻松做到这一点的程序吗?

在我的大脑中,它应该很简单,DELETE <offering> WHERE <parent_id> <> '12345'但是我查找的所有 xquery 看起来你必须声明一大堆废话,而且它是多行只是为了删除一些东西。

我找到了 XML Marker Free,它可以出色地处理大文件,但我找不到删除符合特定条件的多个元素的简单方法。

编辑:我正在接近使用 vbscript 和 XML DOM。*

4

1 回答 1

0

开始通过 windows vbscript 使用 XML DOM,并提出了这个似乎可以完美运行的解决方案。

Set objXMLDoc = Wscript.CreateObject("Microsoft.XMLDOM") 
objXMLDoc.async = False 

Dim XMLFile
XMLFile = "services.xml"
objXMLDoc.load(XMLFile) 
Set nodes = objXMLDoc.selectNodes("xml/offering/parent_id[. != '10001']")
For Each node In nodes
  objXMLDoc.documentElement.removeChild(node.parentNode)
Next

objXMLDoc.Save(XMLFile)
于 2012-08-07T01:08:43.460 回答