Select-Xml
Szöveg keresése XML-sztringben vagy dokumentumban.
Syntax
Xml (Alapértelmezett)
Select-Xml
[-XPath] <string>
[-Xml] <XmlNode[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Path
Select-Xml
[-XPath] <string>
[-Path] <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
LiteralPath
Select-Xml
[-XPath] <string>
-LiteralPath <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Content
Select-Xml
[-XPath] <string>
-Content <string[]>
[-Namespace <hashtable>]
[<CommonParameters>]
Description
A Select-Xml parancsmag segítségével XPath-lekérdezésekkel kereshet szöveget XML-sztringekben és dokumentumokban.
Adjon meg egy XPath-lekérdezést, és használja a Tartalom, Elérési útvagy Xml paramétert a keresendő XML megadásához.
Példák
1. példa: AliasProperty csomópontok kiválasztása
Ez a példa lekéri az alias tulajdonságait a Types.ps1xml. A fájlról további információt a about_Types.ps1xmlcímű cikkben talál.
Az első parancs menti a Types.ps1xml fájl elérési útját a $Path változóban.
A második parancs menti az XML-elérési utat az AliasProperty csomópontra a $XPath változóban.
A Select-Xml parancsmag lekéri az AliasProperty csomópontokat, amelyeket a Types.ps1xml fájl XPath-utasítása azonosít. A parancs egy folyamatkezelő (|) használatával küldi el a AliasProperty csomópontokat a Select-Object parancsmagnak. Az ExpandProperty paraméter kibontja a Csomópont objektumot, és visszaadja a Name és ReferencedMemberName tulajdonságait.
$Path = "$PSHOME\Types.ps1xml"
$XPath = "/Types/Type/Members/AliasProperty"
Select-Xml -Path $Path -XPath $Xpath | Select-Object -ExpandProperty Node
Name ReferencedMemberName
---- --------------------
Count Length
Name Key
Name ServiceName
RequiredServices ServicesDependedOn
ProcessName Name
Handles Handlecount
VM VirtualSize
WS WorkingSetSize
Name ProcessName
Handles Handlecount
VM VirtualMemorySize
WS WorkingSet
PM PagedMemorySize
NPM NonpagedSystemMemorySize
Name __Class
Namespace ModuleName
Az eredmény a fájlban található egyes aliastulajdonságok Neve és Types.ps1xml. Létezik például egy Darabszám tulajdonság, amely a Hossz tulajdonság aliasa.
2. példa: XML-dokumentum bevitele
Ez a példa bemutatja, hogyan használható a Xml paraméter az XML-dokumentum Select-Xml parancsmaghoz való megadására.
A Get-Content parancsmag lekéri a Types.ps1xml fájl tartalmát, és menti azt a $Types változóba. A [xml] a változót XML-objektumként öntötte.
A Select-Xml parancsmag lekéri a MethodName csomópontokat a Types.ps1xml fájlban. A parancs a Xml paraméter használatával adja meg a $Types változó XML-tartalmát, az XPath paraméter pedig a MethodName csomópont elérési útját.
[xml]$Types = Get-Content $PSHOME\Types.ps1xml
Select-Xml -Xml $Types -XPath "//MethodName"
3. példa: PowerShell-súgófájlok keresése
Ez a példa bemutatja, hogyan használható a Select-Xml parancsmag a PowerShell XML-alapú parancsmag súgófájljainak keresésére. Ebben a példában az egyes súgófájlok címként szolgáló parancsmag nevét és a súgófájl elérési útját keressük.
A $Namespace változó egy kivonattáblát tartalmaz, amely a súgófájlokhoz használt XML-névteret jelöli.
A $Path változó tartalmazza a PowerShell súgófájljainak elérési útját. Ha a számítógépen nem találhatók súgófájlok ebben az elérési úton, a Update-Help parancsmaggal töltse le a súgófájlokat. Az frissíthető súgóval kapcsolatos további információkért lásd: about_Updatable_Help.
A Select-Xml parancsmag megkeresi az XML-fájlokat a parancsmagok nevei között, és megkeresi Command:Name elemet a fájlokban. Az eredmények a $Xml változóban vannak tárolva.
Select-Xml egy SelectXmlInfo objektumot ad vissza, amely egy Node tulajdonsággal rendelkezik, amely egy System.Xml.XmlElement objektum.
A Node tulajdonság egy InnerXml tulajdonságot tartalmaz, amely a ténylegesen lekért XML-t tartalmazza.
A $Xml változó a Format-Table parancsmagra van állítva. A Format-Table parancs egy számított tulajdonság használatával lekéri a változóban lévő objektumok $Xml tulajdonságát, levágja a szóközt a szöveg előtt és után, és megjeleníti a táblázatban, valamint a forrásfájlhoz Elérési út.
$Namespace = @{
command = "http://schemas.microsoft.com/maml/dev/command/2004/10"
maml = "http://schemas.microsoft.com/maml/2004/10"
dev = "http://schemas.microsoft.com/maml/dev/2004/10"
}
$Path = "$PSHOME\en-US\*dll-Help.xml"
$Xml = Select-Xml -Path $Path -Namespace $Namespace -XPath "//command:name"
$Xml | Format-Table @{Label="Name"; Expression= {($_.Node.InnerXml).Trim()}}, Path -AutoSize
Name Path
---- ----
Export-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Get-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Get-WinEvent C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Import-Counter C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Diagnostics.dll-Help.xml
Add-Computer C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Management.dll-Help.xml
Add-Content C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Management.dll-Help.xml
Checkpoint-Computer C:\Windows\system32\WindowsPowerShell\v1.0\en-US\Microsoft.PowerShell.Commands.Management.dll-Help.xml
...
4. példa: Az XML bevitelének különböző módjai
Ez a példa két különböző módszert mutat be az XML Select-Xml parancsmagba való küldésére.
Az első parancs egy XML-t tartalmazó here-sztringet ment a $Xml változóban. További információ a here-stringekről: lásd about_Quoting_Rules.
Select-Xml a Content paraméter használatával adja meg az XML-t a $Xml változóban.
A harmadik parancs megegyezik a második paranccsal, azzal a kivételrel, hogy a tt egy folyamatkezelőt (|) használ a $Xml változó XML-fájljának a Select-Xml parancsmagba való küldéséhez.
$Xml = @"
<?xml version="1.0" encoding="utf-8"?>
<Book>
<projects>
<project name="Book1" date="2009-01-20">
<editions>
<edition language="English">En.Book1.com</edition>
<edition language="German">Ge.Book1.Com</edition>
<edition language="French">Fr.Book1.com</edition>
<edition language="Polish">Pl.Book1.com</edition>
</editions>
</project>
</projects>
</Book>
"@
Select-Xml -Content $Xml -XPath "//edition" | foreach {$_.Node.InnerXml}
En.Book1.com
Ge.Book1.Com
Fr.Book1.com
Pl.Book1.com
$Xml | Select-Xml -XPath "//edition" | foreach {$_.Node.InnerXml}
En.Book1.com
Ge.Book1.Com
Fr.Book1.com
Pl.Book1.com
5. példa: Az alapértelmezett xmlns-névtér használata
Ez a példa bemutatja, hogyan használhatja a Select-Xml parancsmagot az alapértelmezett xmlns-névteret használó XML-dokumentumokkal. A példa lekéri a Windows PowerShell ISE felhasználó által létrehozott kódrészletfájljainak címét. A kódrészletekről további információt a New-IseSnippetcímű témakörben talál.
A $SnippetNamespace változó kivonattáblát tartalmaz az XML-fájlok által használt alapértelmezett névtérhez. A kivonattábla értéke az XML kódrészlet XML-kódrészletének XMLNS-séma URI-ja. A kivonattábla kulcsának neve ( snip) tetszőleges. Bármilyen olyan nevet használhat, amely nem foglalt, de nem használhat xmlns.
A Select-Xml parancsmag az egyes kódrészletek Cím elemének tartalmát kapja meg. A Path paraméterrel adja meg a Kódrészletek könyvtárat és a Névtér paramétert a $SnippetNamespace változó névterének megadásához. A XPath paraméter értéke a snip:Title. Az eredmények a ForEach-Object parancsmagra vannak állítva, amely a csomópont InnerXml tulajdonságának értékéből kapja meg a címet.
$SnippetNamespace = @{snip = "http://schemas.microsoft.com/PowerShell/Snippets"}
Select-Xml -Path $HOME\Documents\WindowsPowerShell\Snippets -Namespace $SnippetNamespace -XPath "//snip:Title" |
ForEach-Object {$_.Node.Innerxml}
Paraméterek
-Content
A keresendő XML-t tartalmazó sztringet adja meg. Sztringeket is csövezhet a Select-Xml.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
Content
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-LiteralPath
Megadja a keresendő XML-fájlok elérési útját és fájlneveit. A Path-tal ellentétben a LiteralPath paraméter értéke pontosan a beíráskor lesz használva. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési útvonal escape karaktereket tartalmaz, tedd azt egyes idézőjelek közé. Az egyes idézőjelek azt mondják a PowerShellnek, hogy egyetlen karaktert se értelmezzen escape szekvenciaként.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | PSPath |
Paraméterkészletek
LiteralPath
| Position: | Named |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Namespace
Az XML-ben használt névterek kivonattábláját adja meg. Használja a@{<namespaceName> = <namespaceValue>}formátumot.
Amikor az XML az alapértelmezett névteret használja, amely xmlnekkel kezdődik, használjon tetszőleges kulcsot a névtérnévhez. Xmlneket nem használhat. Az XPath utasításban minden csomópontnév előtagja a névtér nevével és egy kettősponttal, például //namespaceName:Node.
Paramétertulajdonságok
| Típus: | Hashtable |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | Named |
| Kötelező: | False |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
-Path
Megadja a keresendő XML-fájlok elérési útját és fájlneveit. A helyettesítő karakterek használata engedélyezett.
Paramétertulajdonságok
| Típus: | String[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | True |
| DontShow: | False |
Paraméterkészletek
Path
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-Xml
Egy vagy több XML-csomópontot határoz meg.
Az XML-dokumentumok XML-csomópontok gyűjteményeként lesznek feldolgozva. Ha egy XML-dokumentumot Select-Xml, a rendszer minden dokumentumcsomópontot külön keres a folyamat során.
Paramétertulajdonságok
| Típus: | XmlNode[] |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
| Aliasok: | Node |
Paraméterkészletek
Xml
| Position: | 1 |
| Kötelező: | True |
| Folyamatból származó érték: | True |
| Folyamatból származó érték tulajdonságnév alapján: | True |
| Fennmaradó argumentumokból származó érték: | False |
-XPath
XPath keresési lekérdezést ad meg. A lekérdezés nyelve megkülönbözteti a kis- és nagybetűk nyelvét. Ez a paraméter kötelező.
Paramétertulajdonságok
| Típus: | String |
| Alapértelmezett érték: | None |
| Támogatja a helyettesítő karaktereket: | False |
| DontShow: | False |
Paraméterkészletek
(All)
| Position: | 0 |
| Kötelező: | True |
| Folyamatból származó érték: | False |
| Folyamatból származó érték tulajdonságnév alapján: | False |
| Fennmaradó argumentumokból származó érték: | False |
CommonParameters
Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.
Bevitelek
System.String or System.Xml.XmlNode
Ehhez a parancsmaghoz elérési utat vagy XML-csomópontot is csövezhet.
Kimenetek
SelectXmlInfo
Jegyzetek
Az XPath egy szabványos nyelv, amely egy XML-dokumentum részeinek azonosítására szolgál. További információ az XPath nyelvről: XPath-referencia és Eseménykijelölésikijelölési szűrők szakasza.