Как читать XML-файл из Интернета, используя powershell - PullRequest
8 голосов
/ 30 ноября 2009

Когда я подключаюсь к своему HP ILO, используя URL-адрес, http://ilo -ip / xmldata? Item = All возвращает файл XML в формате ниже.

  <?xml version="1.0" ?> 
- <RIMP>
- <HSI>
  <SPN>ProLiant DL385 G1</SPN> 
  <SBSN>ABCDEFG</SBSN> 
  <UUID>123456789</UUID> 
  </HSI>
- <MP>
  <ST>1</ST> 
  <PN>Integrated Lights-Out (iLO)</PN> 
  <FWRI>1.82</FWRI> 
  <HWRI>ASIC: 2</HWRI> 
  <SN>ILOABCDEFG</SN> 
  <UUID>ILO1234545</UUID> 
  </MP>
  </RIMP>

Существует ли какая-либо команда / сценарий powershell для чтения XML-данных с веб-URL?

Ответы [ 2 ]

17 голосов
/ 30 ноября 2009

PowerShell использует .ml framework XmlDocument, чтобы вы могли вызвать метод load для загрузки xml в объект XmlDocument, например так:

#Option 1    
$doc = New-Object System.Xml.XmlDocument
$doc.Load("http://ilo-ip/xmldata?item=All")

#Option 2
[xml]$doc = (New-Object System.Net.WebClient).DownloadString("http://ilo-ip/xmldata?item=All")


# Your XML will then be in the $doc and the names of the XML nodes can be used as
# properties to access the values they hold. This short example shows how you would
# access the value held in the SPN nodes from your sample XML 
Write-Host $doc.RIMP.HSI.SPN

Если вам нужна дополнительная информация о работе с XML после его загрузки, проверьте Dr. Электронная книга Тобиаса Вельтнера на PowerShell.com, глава 14 посвящена XML.

8 голосов
/ 30 ноября 2009

Конечно. Вы можете использовать объект .NET WebClient для загрузки XML из Интернета, а затем использовать тип [xml] для интерпретации строки как XML следующим образом:

$url = "http://blogs.msdn.com/powershell/rss.xml"
[xml]$xml = (new-object System.Net.WebClient).DownloadString($url)
$xml.rss.channel | Foreach {$_.item} |
    Where {[DateTime]$_.pubDate -gt (Get-Date).AddMonths(-1)} |
    Format-Table Title
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...