PowerShell offre diversi modi per leggere documenti XML, senza scrivere molto codice o utilizzando XPath. Ecco come si può iniziare.
Manipolare XML è uno di quegli argomenti che fa rabbrividire chiunque lo abbia mai fatto. In genere richiede molto tempo, è difficile da capire e solo un dolore generale nel culo. Fare scherzi con XML su alcune altre lingue oltre a PowerShell richiede essenzialmente la memorizzazione dell’albero XML per assicurarsi di manipolare il nodo giusto al giusto livello. Inoltre, probabilmente dovrai anche imparare a scrivere query XPath oscure per trovare il contenuto in un documento XML.
PowerShell e la lettura di file XML
PowerShell ha ancora XPath, ma non è necessariamente necessario utilizzarlo. PowerShell fornisce un modo semplice per leggere i file XML, manipolarli e, infine, per salvarli di nuovo su disco senza scrivere un sacco di codice o conoscere XPath. PowerShell fa questo fornendo la notazione punto utente per indicare ogni nodo nel documento XML. Ma prima, iniziamo a leggere un documento XML.
Un modo per leggere un documento XML in PowerShell è quello di typecast una variabile per il tipo . Per creare questa variabile, possiamo usare il cmdlet Get-Content per leggere tutto il testo in un documento XML. Per typecast l’output di Get-Content possiamo semplicemente anteporre il testo prima della variabile. Questo dice a PowerShell che abbiamo bisogno di questa variabile typecasted come Sistema.XML.Tipo XmlDocument invece del tipo di array predefinito che normalmente proviene da Get-Content.
X XmlDocument = Get-Content-Path C:Cars.xml
In questo articolo, useremo un file XML chiamato Cars.xml come esempio, che contiene varie marche e modelli di auto.
Una volta eseguito Get-Content per leggere il testo grezzo dal documento XML e lanciare l’output per digitare System.XML.XmlDocument, ora hai una variabile chiamata X XmlDocument che contiene l’intero albero dei nodi XML che rappresenta quel documento.
A questo punto, la lettura del documento è un compito banale a causa della notazione punto di cui sopra. Dal momento che ora abbiamo il documento XML in memoria possiamo esplorare l’albero.
Si noti come possiamo ottenere sempre più in profondità nel documento utilizzando la notazione dot? Se colpiamo un punto nel documento che contiene nodo di tipo like (Cars) possiamo quindi trattarlo come un array PowerShell e specificare un numero di indice del nodo che stiamo cercando. In questo caso, stiamo trovando la prima auto nel documento specificando il numero di indice di 0.
Diciamo che vuoi trovare tutte le auto in questo documento XML che hanno quattro o più posti. Semplicemente utilizzando il comune cmdlet PowerShell Where-Object possiamo facilmente recuperare tali informazioni.
Combinazione di nodi
Si noti che PowerShell combina entrambi i nodi (elementi) e gli attributi XML in un unico set? Ciò consente di sfogliare facilmente il documento semplicemente utilizzando la notazione dot e il cmdlet Where-Object. PowerShell conosce tutti gli attributi e gli elementi secondari associati a ciascun XML genitore e li visualizza in una bella tabella per te, per impostazione predefinita.
Vi abbiamo mostrato un metodo che è possibile utilizzare per leggere documenti XML con. Una delle cose belle di PowerShell è che può essere facile o difficile come vuoi che sia. Ti abbiamo mostrato come trovare i nodi in un documento XML usando la notazione dot. Se hai la necessità di fare ricerche più avanzate, ti consigliamo di utilizzare cmdlet come Select-Xml per creare query più potenti. In entrambi i casi, PowerShell vi permetterà di leggere e trovare qualsiasi cosa, da un documento XML. Il resto dipende da te.