xml - Powershell - 在计数节点下更新 XML 文本
问题描述
我有一个看起来像这样的 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 可以运行以获取名为“事务”的节点数,因此 powershell 给了我这个错误输出
'Count' is a ReadOnly property.
是否有另一种方法来更新“计数”节点下的值?
解决方案
这是我的解决方法:我将 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
推荐阅读
- python - 同时运行 tensorboard 和 python 脚本
- indexeddb - Dexie.js:通过动态 id 更新嵌套对象
- flutter - Vscode 不显示 chrome 作为设备
- c# - 我正在制作炮塔,但它不会射击
- github - 如何在 .rmd 中打印日期?
- ios - iOS:将音频修改应用于音乐库内容
- function - PytelegramAPI 如何将机器人导入另一个文件
- excel - 确定 Excel 列是否有任何值?
- list - 创建包含另一种数据类型的特定值的数据类型
- python - 多个列表的 Itertools 组合,每个列表选择 n 个元素