В настоящее время мне пришлось изменить XML-файл с XML версии 1.1 до 1.0, чтобы иметь возможность прочитать файл.После этого я смог прочитать файл XML и извлечь нужную информацию из файла.Однако из-за этого PowerShell выдает следующие исключения:
- Невозможно преобразовать значение «System.Object []» в тип «System.Xml.XmlDocument».Ошибка: «Символ« <», шестнадцатеричное значение 0x3C, не может быть включен в имя. Строка 132, позиция 61». </p>
- Вы не можете вызвать метод для выражения с нулевым значением.
Вот мой код:
$xmlfile = [xml](gc "C:\Temp\build.xml" | ForEach-Object{$_ -replace "1.1-*", "1.0"})
$name = $xmlfile .SelectSingleNode("//name").'#text'
$result = $xmlfile .SelectSingleNode("//result").'#text'
$status = $xmlfile .SelectSingleNode("//status").'#text'
$workspace = $xmlfile.SelectSingleNode("//changelog").'#text'
$id = $workspace.Split("\")[3]
[PSCustomObject]@{
"Name" = $name
"Result" = $result
"Status " = $status
"Id" = $id
}
Я пробовал разные способы загрузки файла XML, чтобы включить что-то похожее на это:
[System.Xml.XmlDocument]$file = New-Object System.Xml.XmlDocument
$file.Load($fullpath)