În regulă, încă o lecție rapidă de căutare XML.

Vezi, un nod XML ca acesta:

<server name="DomainController1"></server>

Utilizează numele ca atribut. Tocmai am scris o postare despre cum să căutați XML după atributul nodului.

Dar asta nu vă va ajuta cu nimic față de valoarea textului real al nodului.

<server>DomainController1</server>

Bestie total diferită. Șmecheria aici este să folosiți metoda „text()”.

$XML | Select-Xml -Xpath '//server'

Oh, da… Acesta este lucrul bun.

De asemenea, puteți căuta câteva niveluri mai jos. Iată o mostră dintr-un fișier Remote Desktop Connection Manager.

<group> <properties> <expanded>True</expanded> <name>DomainControllers</name> </properties> <logonCredentials inherit="None"> <profileName scope="File">myDomain\myAccount</profileName> </logonCredentials> <server> <properties> <name>DomainController1.myDomain.demo</name> </properties> </server></group>

Dacă vreau să obțin nodul GROUP care are în el serverul numit DomainController1.myDomain.demo… pot face acest lucru cu XPath și Select-XML.

#This isn't exactly it, but it's a learning step to help you better understand.$xml | Select-XML -XPath '//group/server/properties/name'

Acesta este modul de a obține nodul de nume al serverului care este în grup. Vedeți cât de aproape este? Nu învățați deja?”

În engleză, această afirmație XPath se traduce prin „Dă-mi nodul NAME care are valoarea textului DomainController1.MyDomain.demo, care este nodul copil al unui nod numit properties, care este copilul unuia numit server, care este copilul unui nod numit group. ȘI, acel nod grup poate fi oriunde în XML.”

Definim în afara parantezelor nodul pe care dorim să-l primim. Definim în interiorul parantezelor evaluările pentru a ajunge acolo.

Din moment ce vreau nodul GROUP, voi băga tot restul în interiorul parantezelor.

$xml | Select-XML -XPath '//group'

Acum asta returnează nodul group. Sunteți gata să clonați nodul, să actualizați atributele sau să inserați un nod copil și apoi să salvați obiectul XML actualizat înapoi în fișierul XML original.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.