PowerShell oferă mai multe moduri de a citi documente XML, fără a scrie o mulțime de cod sau folosind XPath. Iată cum puteți începe.
manipularea XML este unul dintre acele subiecte care face pe oricine care a făcut-o vreodată piti. Este de obicei consumatoare de timp, greu de înțeles și doar o durere generală în fund. Messing cu XML pe alte limbi în afară de PowerShell necesită, în esență, memorarea arborelui XML pentru a vă asigura că manipulați nodul potrivit la nivelul potrivit. În plus, probabil că va trebui să învățați să scrieți interogări XPath obscure pentru a găsi conținutul într-un document XML.
PowerShell și citirea fișierelor XML
PowerShell are încă XPath, dar nu trebuie neapărat să-l utilizați. PowerShell oferă o modalitate ușoară de a citi fișiere XML, să le manipuleze și în cele din urmă pentru a le salva înapoi pe disc, fără a scrie o mulțime de cod sau știind XPath. PowerShell face acest lucru furnizând notația punctului utilizatorului pentru a semnifica fiecare nod din documentul XML. Dar mai întâi, să începem să citim un document XML.
o modalitate de a citi un document XML în PowerShell este de a typecast o variabilă la tipul . Pentru a crea această variabilă, putem folosi cmdletul Get-Content pentru a citi tot textul dintr-un document XML. Pentru a typecast ieșirea Get-Content putem pur și simplu prepend textul înainte de variabila. Acest lucru spune PowerShell că avem nevoie de această variabilă typecasted ca un sistem.Xml.Tip XmlDocument în loc de tipul de matrice implicit care provine în mod normal de la Get-Content.
$xmldocument = Get-Content-Path C:Cars.xml
În acest articol, vom folosi un fișier XML numit Cars.xml ca exemplu, care conține diverse mărci și modele de mașini.
odată ce ați rulat Get-Content pentru a citi textul brut din documentul XML și a arunca ieșirea pentru a tasta sistem.Xml.XmlDocument, aveți acum o variabilă numită $XmlDocument care conține întregul arbore de noduri XML care reprezintă acel document.
în acest moment, citirea documentului este o sarcină banală datorită notației punct menționate mai sus. Deoarece avem acum documentul XML în memorie, putem explora arborele.
observați cum putem obține mai adânc și mai adânc în document folosind notația dot? Dacă am lovit un loc în documentul care conține nod de tip similar (mașini), îl putem trata ca pe o matrice PowerShell și putem specifica un număr de index al nodului pe care îl căutăm. În acest caz, găsim prima mașină din document specificând numărul de index de 0.
Să presupunem că doriți să găsiți toate mașinile din acest document XML care au patru sau mai multe locuri. Pur și simplu folosind cmdletul PowerShell comun Where-Object putem prelua cu ușurință aceste informații.
combinarea nodurilor
observați că PowerShell combină atât nodurile (elementele), cât și atributele XML într-un singur set? Acest lucru vă permite să pieptene cu ușurință prin documentul doar prin utilizarea notație dot și cmdletul Where-Object. PowerShell cunoaște toate atributele și subelementele care sunt asociate cu fiecare XML părinte și le afișează într-un tabel frumos pentru tine, în mod implicit.
v-am arătat o metodă pe care o puteți utiliza pentru a citi documente XML cu. Unul dintre lucrurile frumoase despre PowerShell este că poate fi la fel de ușor sau de greu pe cât doriți să fie. V-am arătat cum să găsiți noduri într-un document XML folosind notația dot. Dacă aveți vreodată nevoie să faceți căutări mai avansate, vă sugerăm să vă uitați la utilizarea cmdleturilor precum Select-Xml pentru a construi interogări mai puternice. Oricum, PowerShell vă va permite să citiți și să găsiți aproape orice dintr-un document XML. Restul depinde de tine.