繁体   English   中英

Powershell - 更新计数节点下的 XML 文本

[英]Powershell - Updating XML Text under Count Node

我有一个像这样的 XML 文件

<Transactions>
    <Transaction Type="Login">
        <LoginSetting>blahblah</LoginSetting>
    </Transaction>
    <Transaction Type="Search">
        <Parameters>blahblah</Parameters>
        <Count>Setting</Count>
    </Transaction>
    <Transaction Type="Logout">
        <LogoutSetting>blahblah</LogoutSetting>
    </Transaction>
</Transactions>

此文件的路径存储在 $xml_path 下,并使用 powershell 我已将这些设置导入 [xml]$xml

[xml]$xml = (get-content $xml_path)

我正在尝试更新“计数”节点下的值

$xml.Transactions.Transaction.Count = 'NewSetting'

由于 .Count 是可以运行以获取名为“Transaction”的节点数的东西,powershell 给了我这个错误输出

'Count' is a ReadOnly property.

还有另一种方法可以更新“Count”节点下的值吗?

这是我的解决方法:我将 xml 数据导入到两个变量中 - 一个为纯文本,另一个为 XML

$xml_flat = (get-content $xml_path)
[xml]$xml = (get-content $xml_path)

我从 xml 变量中提取了“Count”的值(因为它不一定具有显示的“Setting”值)

$count = Select-Xml -XML $xml -XPath "//Count"

我对 flat 变量运行了 .replace 以更新我需要的设置。

$xml_flat = $xml_flat.replace("<Count>$count</Count>","<Count>NewSetting</Count>")

从那里我能够将 $xml_flat 作为 $xml_new 导入到 xml 变量中,并且能够做我需要做的任何其他事情

[xml]$xml_new = $xml_flat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM