gpt4 book ai didi

xml - 如何根据其键值删除特定节点?

转载 作者:行者123 更新时间:2023-12-02 23:43:07 25 4
gpt4 key购买 nike

任务是根据键或值删除节点,例如,应删除键为“org.quartz.B”和value =“BBB”的整个条目。

<config>
<module>
<section name="java">
<entry key="org.quartz.A" value="AAA" />
<entry key="org.quartz.B" value="BBB" />
<entry key="org.quartz.C" value="CCC" />
<entry key="org.quartz.D" value="false" />
</section>
<section name="db">
<entry key="oracle" value="12" />
<entry key="mssql" value="2012" />
<entry key="mysql" value="6.1" />
</section>
</module>
</config>

我尝试过的代码是
$getxmlpath="C:\test.xml"
$xml=[xml](Get-Content $getxmlpath)
Write-Host ($xml)
$javasection = $xml.config.module | where-Object {$_.name -eq 'java'}
Write-Host ($javasection)
####### dont know how to delete particular node#######
$xml.Save($getxmlpath)

最佳答案

您可以使用XmlNode类的RemoveChild方法:

$childToRemove = $javaSection.entry | ? { $_.Key -eq 'org.quartz.B' }
$javaSection.RemoveChild($childToRemove)

请注意,使用此方法查找要删除的元素效率很低,因为它必须使用Where-Object cmdlet筛选所有元素。如果您的xml很大,则可能需要使用 SelectSingleNode之类的方法来使用XPath表达式。

关于xml - 如何根据其键值删除特定节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35296658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com