GNU/Linux >> Znalost Linux >  >> Linux

Prohledejte atributy XML PowerShell XPath

Extensible Markup Language (XML) je formát prostého textu, který se používá k ukládání strukturovaných dat. XML je napsáno tak, aby bylo čitelné jak pro člověka, tak pro stroj.

Dokumenty XML často začínají deklarací, jak je znázorněno zde:

<?xml version="1.0" encoding="utf-8"?>

Select-Xml příkaz lze použít k prohledávání dokumentů XML pomocí dotazovacího jazyka XPath. PowerShell v3 a novější také obsahují rutinu Select-Xml. Tato rutina je navržena k vyhledání textu v řetězci XML nebo v dokumentu XML. Konkrétně je navržen tak, aby spouštěl dotazy XPath.

V tomto tutoriálu Powershell o XML budeme diskutovat o tom, jak prohledávat XML a extrahovat konkrétní uzly hledáním atributů XML. K tomu použijeme rutinu select-Xml, avšak dotaz XPath by byl na úrovni atributu. Pomocí příkladů uvedených v tomto tutoriálu byste měli být schopni snadno dotazovat data XML v Powershell a používat výstupní hodnoty.

1. Vstup XML s atributy

Pro tento kurz použijte následující vstupní XML:

<Details>
        <department count="10">
                <ID>10</ID>
                <dname>Administration</dname>
                <manager>200</manager>
                <location>1700</location>
                <revenue>77</revenue>
        </department>
        <department count="20">
                <ID>20</ID>
                <dname>Marketing</dname>
                <manager>201</manager>
                <location>1800</location>
                <revenue>50</revenue>
        </department>
</Details>

2. Načtěte XML v PowerShell

Načteme XML přímo v PowerShellu, jak je znázorněno na obrázku níže:

PS C:\> $xml_attributes=@"
>> <Details>
>>     <department count="10">
>>         <ID>10</ID>
>>         <dname>Administration</dname>
>>         <manager>200</manager>
>>         <location>1700</location>
>>         <revenue>77</revenue>
>>     </department>
>>     <department count="20">
>>         <ID>20</ID>
>>         <dname>Marketing</dname>
>>         <manager>201</manager>
>>         <location>1800</location>
>>         <revenue>50</revenue>
>>     </department>
>> </Details>
>> "@
>>
PS C:\>

Proměnná xml_attributes obsahuje data XML, která můžeme prohledávat pomocí cmdlet select-Xml.

3. Prohledávejte XML podle atributů v prostředí PowerShell – XPath

Chcete-li uvést všechny hodnoty atributu „count“ jako příklad, můžete to udělat podle příkazu níže.

C:\>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\> Select-Xml -Content $xml_attributes -XPath '//@count' | foreach {$_.node
}

#text
-----
10
20

Zde používáme „//“ k přímému dotazu na atribut XML a pomocí příkazu „foreach“ vytiskneme hodnotu v Powershell.

4. Vypsat uzly XML odpovídající hodnotě atributu – příklad

V tomto případě je požadavkem vypsat všechny detaily oddělení, kde se počet shoduje s 10. To lze snadno provést přiřazením hodnoty atributu k 10 v XPath a vytištěním výstupu. Příkaz Powershell k tomu je uveden níže:

PS C:\> Select-Xml -Content $xml_attributes -XPath '//department[@count="10"]' |
 foreach {$_.node}


count    : 10
ID       : 10
dname    : Administration
manager  : 200
location : 1700
revenue  : 77

Shrnutí

S XML je snadné pracovat. Lze jej použít pro konfiguraci a ukládání dat. Viděli jste, jak ručně nastavit počáteční dokument, načíst jej do shellu a vyjmenovat jeho prvky. XPath lze použít k navigaci nebo prohledávání dokumentu XML. PowerShell (a .NET) používá XPath 1.0.


Linux
  1. Jak najít soubor v Linuxu

  2. Globální vyhledávání SQL

  3. Instalace PowerShellu na Kali Linux

  1. Chybí php_soap.dll v Ubuntu 16

  2. Odebrat zvýraznění hledání VIM

  3. Interaktivní vyhledávání relací tmux

  1. Vyhledávání duplicitních názvů souborů bez ohledu na velikost písmen?

  2. Použití příkazu ripgrep (rg) v Linuxu

  3. Jak analyzovat XML a odstranit značky pomocí příkladů XPATH v Linuxu (Jak kombinovat více příkazů pomocí PIPE v Linuxu)