PowerShell biedt verschillende manieren om XML-documenten te lezen, zonder veel code te schrijven of XPath te gebruiken. Hier is hoe je kunt beginnen.
het manipuleren van XML is een van die onderwerpen die iedereen die het ooit gedaan heeft doet krimpen. Het is meestal tijdrovend, moeilijk te begrijpen en gewoon een algemene lastpost. Knoeien met XML op een aantal andere talen naast PowerShell vereist in wezen het onthouden van de XML-boom om ervoor te zorgen dat u het manipuleren van de juiste knoop op het juiste niveau. Bovendien zul je waarschijnlijk ook moeten leren om obscure XPath queries te schrijven om de inhoud in een XML-document te vinden.
PowerShell en het lezen van XML-bestanden
PowerShell heeft nog steeds XPath, maar u hoeft het niet per se te gebruiken. PowerShell biedt een eenvoudige manier om XML-bestanden te lezen, te manipuleren en uiteindelijk om ze terug op de schijf op te slaan zonder veel code te schrijven of XPath te kennen. PowerShell doet dit door de gebruiker dot notatie te geven om elk knooppunt in het XML-document aan te duiden. Maar eerst, laten we beginnen met het lezen van een XML-document.
een manier om een XML-document in PowerShell te lezen is door een variabele op het type te typen . Om deze variabele te maken, kunnen we de cmdlet Get-Content gebruiken om alle tekst in een XML-document te lezen. Om de uitvoer van Get-Content te typen kunnen we gewoon de tekst voor de variabele plaatsen. Dit vertelt PowerShell dat we deze variabele moeten getypt als een systeem.Xml.XmlDocument type in plaats van de standaard array type dat normaal afkomstig is van Get-Content.
$XmlDocument = Get-Content-Path C: Cars.xml
In dit artikel gebruiken we een XML-bestand genaamd Cars.xml als voorbeeld, die verschillende merken en modellen van auto ‘ s bevat.
zodra u Get-Content hebt uitgevoerd om de ruwe tekst van het XML-document te lezen en de uitvoer naar type System te casten.Xml.XmlDocument, je hebt nu een variabele genaamd $XmlDocument die de volledige XML node tree bevat die dat document vertegenwoordigt.
Op dit moment is het lezen van het document een triviale taak vanwege de bovengenoemde puntnotatie. Aangezien we nu het XML-document in het geheugen hebben, kunnen we de boomstructuur verkennen.
merk op hoe we dieper en dieper in het document kunnen komen met behulp van puntnotatie? Als we een punt raken in het document dat node bevat van hetzelfde type (auto ‘ s) kunnen we het dan behandelen als een PowerShell array en een indexnummer opgeven van het node dat we zoeken. In dit geval vinden we de eerste auto in het document door het indexnummer van 0 op te geven.
stel dat u alle auto ‘ s in dit XML-document wilt vinden die vier of meer stoelen hebben. Gewoon door het gebruik van de common PowerShell cmdlet Where-Object kunnen we gemakkelijk die informatie op te halen.
knooppunten combineren
merk op dat PowerShell zowel de knooppunten (elementen) als de XML-attributen in één set combineert? Dit stelt u in staat om eenvoudig door het document te kammen met behulp van puntnotatie en de cmdlet waar-Object. PowerShell kent alle attributen en subelementen die zijn gekoppeld aan elke ouder XML en toont ze in een mooie tabel voor u, standaard.
we hebben u een methode getoond waarmee u XML-documenten kunt lezen. Een van de leuke dingen aan PowerShell is dat het zo makkelijk of zo moeilijk kan zijn als je wilt. We hebben u laten zien hoe u knooppunten in een XML-document kunt vinden met behulp van puntnotatie. Als je ooit de behoefte hebt om meer geavanceerd zoeken te doen, raden we je aan om te kijken naar het gebruik van cmdlets zoals Select-Xml om krachtiger query ‘ s te bouwen. Hoe dan ook, PowerShell zal u toelaten om te lezen en te vinden zowat alles uit een XML-document. De rest is aan jou.