我在 VB.NET 中有一个很大的 XMLNode(我们说的是 10s/100s 的数千个节点和数百万个属性)。
XML的一般结构是:
<other xml nodes></other xml nodes>
<list>
<item attr1="" attr2="" attr3="" attr4="" ... />
<item attr1="" attr2="" attr3="" attr4="" ... />
<item attr1="" attr2="" attr3="" attr4="" ... />
<item attr1="" attr2="" attr3="" attr4="" ... />
<item attr1="" attr2="" attr3="" attr4="" ... />
<item attr1="" attr2="" attr3="" attr4="" ... />
.
.
.
</list>
我想要做的是根据某些属性删除项目节点(例如,如果我有 50,000 个节点,我的标准可能会删除其中的 49500 个)。
我遇到的问题是,我的代码需要几秒钟才能删除如此多的节点,而我需要它更快。
我已经尝试了几种不同的方法,我迄今为止最快的是:
dim xnlList = xnBigXMLNode.selectNodes("//list/item[@attr1=sample]")
for each xnNode in xnlList
xnNode.ParentNode.RemoveChild(xnNode)
next
*请原谅上面代码中的任何错误,我现在不在我的开发机器上
作为附加约束,我需要在 xmlNode 中保留“其他 xml 节点”。
我考虑过删除整个列表,并重新添加我需要的节点,但这需要更长的时间才能执行。
任何人都可以想出一种方法来更快地删除数千个节点吗?
提前致谢