考虑以下 XML:
<A type="Something">
<B version="1">
<C version="1">
<D version="1">
<This>True</This>
<That>True</That>
</D>
</C>
</B>
</A>
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止操作它的 Powershell 脚本:
[xml] $someXml = [xml] (Get-Content $myFile)
$someXml.A.B.C.D.This = "False"
$someXml.A.B.C.D.That = ""
$someXml.Save($myFile)
Run Code Online (Sandbox Code Playgroud)
如果我运行我得到
<A type="Something">
<B version="1">
<C version="1">
<D version="1">
<This>False</This>
<That></That>
</D>
</C>
</B>
</A>
Run Code Online (Sandbox Code Playgroud)
而我真正追求的是
<A type="Something">
<B version="1">
<C version="1">
<D version="1">
<This>False</This>
<That/>
</D>
</C>
</B>
</A>
Run Code Online (Sandbox Code Playgroud)
那么,问题是,如何设置That来强制元素自动关闭?
是的,我知道它们在语法上是相同的,但是我有自己的理由为什么需要它作为一个自关闭标签。
IsEmpty清除内部文本值后,将节点上的属性值设置为$true:
$someXml.A.B.C.D.GetElementsByTagName('That')[0].IsEmpty = $true
Run Code Online (Sandbox Code Playgroud)
当文档写入文件/输出时,这将导致折叠标签:
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |