从这里:
<products id="col">
<product code="id1" />
<product code="id2" />
</products>
我想得到这个:
<products id="col">
</products>
如果我使用RemoveAll(),它也会删除产品id属性,所以我会得到这个
<products>
</products>
这不是我想要的。我可以使用什么方法来保留products节点中的id属性?
从这里:
<products id="col">
<product code="id1" />
<product code="id2" />
</products>
我想得到这个:
<products id="col">
</products>
如果我使用RemoveAll(),它也会删除产品id属性,所以我会得到这个
<products>
</products>
这不是我想要的。我可以使用什么方法来保留products节点中的id属性?
3条答案
按热度按时间6tqwzwtp1#
不需要调用
RemoveAll()
,您需要找到要删除的节点,然后使用RemoveChild()
手动删除每个节点:如果不知道直接子节点的名称,而只知道父节点的名称,那么无论如何都可以使用XPath来选择它们:
'//ParentNodeName/child::*'
ezykj2lf2#
我的答案并不依赖于XPath来实现这一点,脚本假定
$XmlDocument
是一个包含XmlDocument
示例的变量,脚本还假定只有<product>
元素存在于<products>
中。如果
<products>
不包含任何子元素(即,它是一个文本元素),此代码也可以工作。k10s72fa3#
我想知道如果我想通过父节点属性id删除子节点,我应该怎么做?