如何使用 PowerShell 注释掉 XML 中的节点? [英] How can I comment out a node in XML using PowerShell?

查看:59
本文介绍了如何使用 PowerShell 注释掉 XML 中的节点?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以注释掉 XDocument 中的节点?

Is it possible to comment out a node in an XDocument?

我有以下标签.

<abc key="test" value="samplevalue"></abc>

我不必移除节点;我只希望它以注释格式出现在 XML 文件中.我可以使用这样的东西:

I don't have to remove the node; I just want it to be there in the XML file in commented format. I can use something like this:

$node = $xml.selectSingleNode('//abc')
#$node.OuterXml.Insert(0,"#");
$node.$xml.Save("c:\test.xml")

但是如果一个节点像这样分成两行

But if one node spreads in two lines like

<abc key="test" value="sampleValue">
</abc>

那我怎么处理这种情况?

then how do I handle this case?

推荐答案

XML 中的注释使用 完成.试试这个:

Comments in XML are done with <!-- and -->. Try this:

$xml = [xml]@"
<root>
<abc key="test" value="samplevalue"></abc>
<abc key="sa" value="dsad">sda
</abc>
</root>
"@

$node = $xml.selectSingleNode('//abc')
#OuterXML is read-only, so I took an alternative route
$node.ParentNode.InnerXml = $node.ParentNode.InnerXml.Replace($node.OuterXml, $node.OuterXml.Insert(0, "<!--").Insert($node.OuterXml.Length+4, "-->"))
$xml.Save("c:\test.xml")

测试.xml

<root>
  <!--<abc key="test" value="samplevalue"></abc>-->
  <abc key="sa" value="dsad">sda
</abc>
</root>

这篇关于如何使用 PowerShell 注释掉 XML 中的节点?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆