PowerShell nabízí několik způsobů, jak číst dokumenty XML, bez psaní velkého kódu nebo použití XPath. Zde je návod,jak můžete začít.
manipulace s XML je jedním z těch témat, díky nimž se každý, kdo to kdy udělal, krčí. Je to obvykle časově náročné, těžko pochopitelné a jen obecná bolest v zadku. Messing s XML v některých jiných jazycích kromě PowerShell vyžaduje v podstatě zapamatování stromu XML, abyste se ujistili, že manipulujete se správným uzlem na správné úrovni. Kromě toho se pravděpodobně budete muset naučit psát temné dotazy XPath, abyste našli obsah v dokumentu XML.
PowerShell a čtení XML souborů
PowerShell má stále XPath, ale nemusíte jej nutně používat. PowerShell poskytuje snadný způsob, jak číst XML soubory, manipulovat s nimi a nakonec je uložit zpět na disk, aniž byste museli psát hodně kódu, nebo vědět, XPath. PowerShell to dělá tím, že uživatel dot notaci znamenat každý uzel v dokumentu XML. Nejprve však začněme číst dokument XML.
jedním ze způsobů, jak číst XML dokument v PowerShell je obsadit proměnnou typu . K vytvoření této proměnné můžeme použít rutinu Get-Content ke čtení celého textu v dokumentu XML. Chcete-li zadat výstup Get-Content, můžeme jednoduše předepíše text před proměnnou. To říká PowerShell, že potřebujeme tuto proměnnou typecasted jako systém.Datum.Typ XmlDocument namísto výchozího typu pole, který obvykle pochází z Get-Content.
$XmlDocument = Get-Content-Path C: Cars.xml
v tomto článku budeme používat soubor XML nazvaný Cars.xml jako příklad, který obsahuje různé značky a modely automobilů.
Jakmile jste spustit Get-Obsah číst surový text z dokumentu XML a obsazení výstup na typ Systému.Datum.XmlDocument, nyní máte proměnnou nazvanou $XmlDocument, která obsahuje celý strom uzlu XML, který tento dokument představuje.
V tomto bodě, čtení dokumentu je triviální úkol, vzhledem k výše uvedené dot notace. Protože nyní máme dokument XML v paměti, můžeme strom prozkoumat.
Všimněte si, jak se můžeme dostat hlouběji a hlouběji do dokumentu pomocí tečkové notace? Pokud narazíme na místo v dokumentu, který obsahuje uzel typu like (Cars), můžeme s ním zacházet jako s polem PowerShell a určit Indexové číslo uzlu, který hledáme. V tomto případě najdeme první auto v dokumentu zadáním indexového čísla 0.
řekněme, že chcete najít všechna auta v tomto dokumentu XML, která mají čtyři nebo více sedadel. Jednoduše pomocí běžné rutiny PowerShell where-Object můžeme tyto informace snadno načíst.
kombinace uzlů
Všimněte si, že PowerShell kombinuje uzly (prvky) i atributy XML v jedné sadě? To vám umožní snadno pročesat dokument jen pomocí bodové notace a cmdlet Where-Object. PowerShell zná všechny atributy a dílčí prvky, které jsou spojeny s každým nadřazeným XML, a ve výchozím nastavení je zobrazuje v pěkné tabulce.
ukázali jsme vám jednu metodu, kterou můžete použít ke čtení dokumentů XML. Jednou z pěkných věcí na PowerShell je, že to může být tak snadné nebo tak těžké, jak chcete. Ukázali jsme vám, jak najít uzly v dokumentu XML pomocí bodové notace. Pokud budete někdy potřebovat pokročilejší vyhledávání, doporučujeme vám podívat se na použití rutin, jako je Select-Xml, k vytvoření výkonnějších dotazů. Ať tak či onak, PowerShell vám umožní číst a najít téměř cokoli z dokumentu XML. Zbytek je na vás.