Загрузка XML-строки с помощью PowerShell - PullRequest
13 голосов
/ 14 октября 2010

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

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

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

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

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

Ответы [ 3 ]

22 голосов
/ 14 октября 2010

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

Again, I added test to show that I can access XML members Full Image


... и я запустил ее с вашей строкой, и она работала нормально ......notice there was an empty return? Полное изображение

4 голосов
/ 18 августа 2017

Для удобства искателей, если у вас есть верхняя строка xml, включающая информацию о форматировании (а не прямую в корневом узле), вам необходимо удалить верхнюю строку, прежде чем вы сможете ее преобразовать

, например

<?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 голосов
/ 31 июля 2015

Попробуйте это

$xmlcontent = variable which holds xml data in string
$xml = New-Object -TypeName System.Xml.XmlDocument
$xml.LoadXml($xmlcontent)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...