Загрузка XML-строки с помощью PowerShell
Я определил строку XML, используя
$str = "<a><b></b></a>"
Теперь я хочу загрузить его в переменную [xml], чтобы иметь возможность манипулировать ее узлами и т.д.
Строка ниже приводит к ошибке...
$str = [xml]"<a><b></b></a>"
Как это сделать?
Ответы
Ответ 1
Код в вашем вопросе, кажется, работает для меня. Я просто добавил test
в моей строке, чтобы показать, что могу получить доступ к значению, но оно должно работать и без него.
Полное изображение
Литье строки также работало для меня:
Полное изображение
... и я запустил его с твоей строкой, и он работал нормально...
Full Image
Ответ 2
В интересах поисковиков, если у вас есть верхняя строка xml, которая включает в себя форматирование (а не прямо в корневой директории node), вам нужно удалить верхнюю строку, прежде чем вы сможете ее отличить
например.
<?xml version="1.0" encoding="utf-8"?>
<Courses>
<CourseEntry Type="Mandatory" Name="Math"/>
<CourseEntry Type="Mandatory" Name="Coding" />
<CourseEntry Type="Optional" Name="Economics" />
<CourseEntry Type="Optional" Name="History" />
</Courses>
Требуется:
$xmlFile = Get-Content "*.xml"
$xmlFileMinusFormatData = $xmlFile[1..($xmlFile.Length - 1)] #we need to remove the first line
$usableXml = [xml]$xmlFileMinusFormatData # Convert to xml for easy handling
$usableXml.Courses.CourseEntry.Count # just a count of rows
Ответ 3
Попробуйте это
$xmlcontent = variable which holds xml data in string
$xml = New-Object -TypeName System.Xml.XmlDocument
$xml.LoadXml($xmlcontent)