Подтвердить что ты не робот

Загрузка XML-строки с помощью PowerShell

Я определил строку XML, используя

$str = "<a><b></b></a>"

Теперь я хочу загрузить его в переменную [xml], чтобы иметь возможность манипулировать ее узлами и т.д. Строка ниже приводит к ошибке...

$str = [xml]"<a><b></b></a>"

Как это сделать?

4b9b3361

Ответ 1

Код в вашем вопросе, кажется, работает для меня. Я просто добавил test в моей строке, чтобы показать, что могу получить доступ к значению, но оно должно работать и без него.

Yes I added test, but you can see my example workedПолное изображение

Литье строки также работало для меня:

Again, I added test to show that I can access XML membersПолное изображение


... и я запустил его с твоей строкой, и он работал нормально... ...notice there was an empty return?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)