powershell 在保持格式的同时将复杂(多个子)XML元素转换为注解

f0brbegy  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(155)

给定的XML为

<Root>
    <Element>
        <Child1 />
        <Child2 />
        <Child3 />
    </Element>
</Root>

我希望将整个<element> Package 在一个注解中,保持格式。所以要么

<!--<Element>
    <Child1 />
    <Child2 />
    <Child3 />
</Element>-->

<!--
<Element>
    <Child1 />
    <Child2 />
    <Child3 />
</Element>
-->

但到目前为止,我唯一能做的就是使用.InnerXml将整个元素减少为一行注解

<!--<Element><Child1 /><Child2 /><Child3 /></Element>-->

这在本例中不是问题,但在我的现实世界中,包含更多元素和内容的XML对于我的用例基本上是不可用的。
我错过了什么简单的解决方案吗?或者,我是否需要将整个元素处理成文本行,并自己处理缩进和行尾?

z9smfwbn

z9smfwbn1#

尝尝这个

using assembly System 
using assembly System.Xml.Linq 

$Filename = "c:\temp\test.xml"
$xDoc = [System.Xml.Linq.XDocument]::Load($Filename)

$element =  $xDoc.Descendants("Element").Foreach([System.Xml.Linq.XElement])
$comment = New-Object -TypeName System.Xml.Linq.XComment([string]$element)

$element.ReplaceWith($comment)
Write-Host $xDoc

相关问题