XML genom PowerShell

En sista viktig aspekt av XML gäller formatering och dokumenttransformation. En XML Style Sheet gör att du kan omvandla en XML-beskrivning till ett nytt dokument, till exempel ett HTML-dokument. HTML använder fördefinierade taggar vars betydelse är väl förstådd av alla webbsidors författare och webbläsare: till exempel

element startar en ny tabell, som användarens webbläsare vet hur den ska visa. Du kan enkelt lägga till stilar till ett HTML-dokument genom att tillhandahålla en Cascading Style Sheet. XML använder dock inte fördefinierade taggar och du är fri att välja vilka taggnamn du gillar A

element i XML kan betyda en HTML-tabell eller en möbel: det är XML Style Sheet som beskriver hur varje taggat element ska visas.

XML-formatmallar kan också användas för att omvandla ett XML-dokument till ett annat, eventuellt bryta ner vissa element eller flytta runt dem, och sådana manipulationer är inte ovanliga i system som utbyter XML-dokument.

Bearbetar XML i kod

Ett XML-dokument ser ut som ett träd med ett enda rotelement och flera underordnade element. Du kan bearbeta ett sådant träd antingen nod för nod eller genom att dra in hela trädet i minnet och bearbeta dess olika element. Java-utvecklare kommer utan tvekan att vara bekanta med Simple API for XML (SAX), som stöder nod-för-nod-tolkning. Helträdsmetoden är känd som Document Object Model (DOM) och är flexibel eftersom den låter dig navigera i alla element i trädet efter behov. Å andra sidan är SAX snabbare eftersom det inte behöver ladda hela dokumentet i minnet, bara titta på en enda nod åt gången och bara läsa framåt. Båda metoderna fungerar, men .NET implementerar inte SAX direkt.

Jag kommer att använda PowerShell för att illustrera manipuleringen av XML-dokument, av ett par anledningar. För det första tillhandahåller PowerShell en fantastisk uppsättning verktyg för att utforska XML-dokument, eftersom den använder .NET Frameworks XML-funktioner direkt, inklusive hela System.XML-namnrymden; För det andra, eftersom XML blir så viktigt för IT-proffs, kan du hitta några av de tekniker jag beskriver användbara när du hanterar XML-dokument. Ett ord av varning, dock: det kan ta lite tid att bli bekväm med XML-bearbetning inom PowerShell. Det tog ett tag för mig, men det blev snabbt uppenbart hur kraftfullt PowerShell kan vara för att bearbeta XML-dokument.

Öppna ett PowerShell-fönster nu och prova några av dessa kommandon (jag lägger XML-dokumenten jag använder i kolumnen på min webbplats på www.reskit.net/pcpro). För att öppna ett XML-dokument i PowerShell, utfärda följande kommando:

$doc= [xml] (kattbok.xml)

Det här är ett litet kortkort som i själva verket öppnar filen och skapar ett XML-dokument baserat på vilken text som helst i filen. För de mer vana vid C# skulle följande PowerShell-syntax också fungera och kanske vara mer bekant för dig:

$doc= New-Object xml

$doc.load(“book.xml”)

I det här fallet skapar jag först ett nytt XML-dokumentobjekt, och först därefter använder jag en inbyggd metod för att ladda filen. I båda fallen skapar PowerShell en variabel som heter $doc, som är ett XML-dokument, och du kan komma åt $doc för att komma åt informationen i XML-dokumentet. När du öppnar dokumentet på det här sättet används DOM, och PowerShell skapar en in-memory-representation av dokumentet som du sedan kan manipulera.

För att se detaljerna för alla egenskaper och metoder som implementeras av $doc-objektet kan du använda PowerShells Get-Member-cmdlet enligt följande:

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *