Как внести следующие изменения в файл XML? - PullRequest
1 голос
/ 06 мая 2020
• 1000 к заранее заданному тексту.

Ответы [ 2 ]

3 голосов
/ 06 мая 2020

Это должно сработать, но я подозреваю, что будут лучшие решения.

$xml = [System.Xml.XmlDocument](Get-Content .\Desktop\test.xml -Raw)
$urls = $xml.SelectNodes("//Key") | Where-Object { $_.InnerText -eq "URL" }
foreach ($url in $urls) {
    if (string]::IsNullOrEmpty($url.NextSibling.InnerText)) {
        $url.NextSibling.InnerText = "predetermined text"
    }
}
$xml.Save(".\Desktop\test.xml")
1 голос
/ 06 мая 2020

Этим можно вдохновить, но не лучше, чем @ a sh ответ:

[xml]$xml = @"
<Group>
    <Entry>
        <String>
            <User>UserOne</User>
        </String>
        <String>
            <Key>URL</Key>
            <Value>Test</Value>
        </String>
    </Entry>
   <Entry>
       <String>
           <User>UserTwo</User>
       </String>
      <String>
          <Key>URL</Key>
          <Value></Value>
      </String>
   </Entry>
</Group>
"@

$users = $xml.selectNodes("//Group/Entry") 
foreach ($user in $users)
{
  Write-Host "Enter URL for $($user.String[0].User)"
  $url = Read-Host
  $user.String[1].Value  = [string]$url
}

$xml.Save("c:\temp\FileAfter.xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...