使用PowerShell修改现有XML数据

时间:2018-04-04 07:18:24

标签: xml powershell

示例数据:

<lieu>
  <l_nr>
  </l_nr>
  <strasse>gasse</strasse>
  <h_nr>0</h_nr>
  <f_name>0</f_name>
  <v_name>0</v_name>
  <txt>1 Knoflach Josef</txt>
</lieu>

我想通过添加1到6000来更改“行号”项<l_nr>

并且还拆分了<txt>项目:

$path = "lieu.xml"
$fiche = New-Object System.XML.XMLDocument
[xml]$xml = Get-Content $path

$rue = $xml.lieu.txt[0].Split(" ")
$rue[0]
$rue[1]
$rue[2]

$xml | % {$_ -replace ($_.h_nr,$n_st[0],$_.f_name=$n_st[1],$_.v_name=$n_st[2])}
(1..$xml.lieu.txt.count) | % {$_ -replace $_.l_nr}

$xml.Save($path)

它引发了以下错误:

Indexation impossible dans un tableau Null.
Au caractère Ligne:16 : 51
+ ... $_ -replace ($_.h_nr,$n_st[0],$_.f_name=$n_st[1],$_.v_name=$n_st[2])}
    + CategoryInfo          : InvalidOperation : (:) [], RuntimeException
    + FullyQualifiedErrorId : NullArray

1 个答案:

答案 0 :(得分:0)

使用=设置值而不是-replace

[xml]$xml = Get-Content -Path C:\Users\dave\Temp\file.xml

$Split = $xml.lieu.txt -split "\s"

$xml.lieu.h_nr   = $Split[0]
$xml.lieu.f_name = $split[1]
$xml.lieu.v_name = $Split[2]