这是我第一次使用PowerShell而我无法解决我的问题:/
我有以下xml文件:
<mockup>
<controls>
<control>
<controlProperties>
<text>Löschen</<text>
</controlProperties>
</control>
<control>
<controlProperties/>
</control>
<control>
<controlProperties>
<text>Abbrechen</text>
</controlProperties>
</control>
</controls>
</mockup>
我有100个这样的文件,里面有大约100个文本标签。我想翻译那些文本标签。因此,我浏览所有文件,浏览所有文本标签并检查值是否为“Löschen”并将其更改为“删除”。
我已经尝试了很多东西(没有xml它已经可以工作了,但如果我不将它限制在文本文件中,它会弄乱我的xml文件。
我的最后一次尝试就是这个:
$file = gi *.bmml
$pattern = 'Löschen'
$xml = [xml](gc $file)
$xml
Foreach ($control in $_.mockup.controls.control) |
Foreach {$control.controlproperties.text.Replace $pattern "Delete"
$xml.Save($file.Fullname)
我很感激你的帮助,我真的很累,现在就去睡觉吧。也许有人可以为我的案例提供一个很好的xml处理教程(我的案例有1000个,但没有)。
非常感谢!
答案 0 :(得分:1)
这一行:
Foreach ($control in $_.mockup.controls.control)
应该是:
Foreach ($control in $xml.mockup.controls.control)
您采取的替换文本的方法也不起作用。试试这个:
Select-Xml $xml -XPath '//text' | Foreach {$_.Node.InnerText = 'Delete'}
$xml.Save("c:\somepath.xml")