0

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はありますが、私の場合はありません)。

どうもありがとうございました!

4

1 に答える 1

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")
于 2013-10-01T18:12:47.243 に答える