Select-XML
XML 문자열 또는 문서에서 텍스트를 찾습니다.
구문
Select-XML -Content <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]
Select-XML [-Path] <string[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]
Select-XML [-Xml] <XmlNode[]> [-Xpath] <string> [-Namespace <hashtable>] [<CommonParameters>]
설명
Select-XML cmdlet을 사용하면 XPath 쿼리를 통해 XML 문자열 및 문서에서 텍스트를 검색할 수 있습니다. XPath 쿼리를 입력하고 Content, Path 또는 Xml 매개 변수를 사용하여 검색할 XML을 지정합니다.
매개 변수
-Content <string[]>
검색할 XML이 포함된 문자열을 지정합니다. 문자열을 Select-XML로 파이프할 수도 있습니다.
필수 여부 |
true |
위치 |
named |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-Namespace <hashtable>
XML에서 사용되는 네임스페이스의 해시 테이블을 지정합니다. @{<namespaceName> = <namespaceValue>} 형식을 사용하십시오.
필수 여부 |
false |
위치 |
named |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Path <string[]>
검색할 XML 파일의 경로 및 파일 이름을 지정합니다. 와일드카드를 사용할 수 있습니다.
필수 여부 |
true |
위치 |
2 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
true |
-Xml <XmlNode[]>
하나 이상의 XML 노드를 지정합니다. Path 또는 Xml 매개 변수는 모든 명령에 필요합니다.
XML 문서는 XML 노드의 컬렉션으로 처리됩니다. XML 문서를 Select-XML로 파이프하면 각 문서 노드는 파이프라인을 통과하는 동안 개별적으로 검색됩니다.
필수 여부 |
true |
위치 |
2 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
true (ByValue, ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Xpath <string>
XPath 검색 쿼리를 지정합니다. 쿼리 언어는 대/소문자를 구분합니다. 이 매개 변수는 필수 사항입니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
없음 |
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.String 또는 System.Xml.XmlNode 경로 또는 XML 노드를 Select-XML로 파이프할 수 있습니다. |
출력 |
System.Xml.XmlElement 또는 System.Xml.XmlText |
참고
XPath는 XML 문서의 부분을 식별하도록 설계된 표준 언어입니다. XPath 언어에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 라이브러리의 "Event Selection(이벤트 선택)"(https://go.microsoft.com/fwlink/?LinkId=143608) 항목에서 "Selection Filters(선택 필터)" 섹션을 참조하십시오. 그리고 MSDN 라이브러리의 "XPath 참조"(https://go.microsoft.com/fwlink/?LinkId=143609)를 참조하십시오.
예 1
C:\PS>$path = "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"
C:\PS> select-xml -path $path -xpath "/Types/Type/Members/AliasProperty"
설명
-----------
이 예에서는 Types.ps1xml 파일에서 AliasProperty 노드의 하위 항목을 검색합니다.
예 2
C:\PS>select-xml -path test*.xml, help.xml -xpath "/Tests/Test[1]/Name"
설명
-----------
이 명령은 Select-XML을 사용하여 여러 XML 파일을 검색합니다.
예 3
C:\PS>[xml]$Types = get-content "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml"
C:\PS> select-xml -xml $Types -xpath "//MethodName"
설명
-----------
이 예에서는 XML 문서를 Search-Path로 파이프하는 방법을 보여 줍니다.
예 4
C:\PS>$namespace = @{command="https://schemas.microsoft.com/maml/dev/command/2004/10"; maml="https://schemas.microsoft.com/maml/2004/10"; dev="https://schemas.microsoft.com/maml/dev/2004/10"}
C:\PS> $path = "$env:windir\System32\WindowsPowerShell\V1.0\en-us\*dll-Help.xml"
C:\PS> select-xml -path $path -namespace $namespace -xpath "//command:name"
Text Node Path
---- ---- ----
Add-Computer name C:\Windows\System32\WindowsPowerShell\V...
Add-Content name C:\Windows\System32\WindowsPowerShell\V...
Checkpoint-Computer name C:\Windows\System32\WindowsPowerShell\V...
Clear-Content name C:\Windows\System32\WindowsPowerShell\V...
Clear-EventLog name C:\Windows\System32\WindowsPowerShell\V...
...
설명
-----------
이 예에서는 Select-XML cmdlet을 사용하여 Windows PowerShell XML 기반 cmdlet 도움말 파일을 검색하는 방법을 보여 줍니다.
첫 번째 명령은 XML 네임스페이스를 나타내는 해시 테이블을 만들어 $namespace 변수에 저장합니다.
두 번째 명령은 도움말 파일에 대한 경로를 $path 변수에 저장합니다.
세 번째 명령은 Select-Xml을 사용하여 XML 파일에서 Command:Name 태그를 찾아 cmdlet 이름을 검색합니다.
예 5
C:\PS>select-xml -content $xml -xpath "//edition"
C:\PS> $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>
"@
C:\PS> select-xml -content $xml -xpath "//edition"
Text Node Path
---- ---- ----
En.Book1.com edition InputStream
Ge.Book1.Com edition InputStream
Fr.Book1.com edition InputStream
Pl.Book1.com edition InputStream
C:\PS> $xml | select-xml -xpath "//edition"
Text Node Path
---- ---- ----
En.Book1.com edition InputStream
Ge.Book1.Com edition InputStream
Fr.Book1.com edition InputStream
Pl.Book1.com edition InputStream
설명
-----------
이 예에서는 Select-XML의 Content 매개 변수를 사용하여 here-string에서 XML 콘텐츠를 검색합니다.
첫 번째 명령은 here-string을 $xml 변수에 저장합니다.
두 번째 명령은 Content 매개 변수를 사용하여 $xml 변수에 XML을 지정합니다.
세 번째 명령은 두 번째 명령과 동일합니다. 이 명령은 파이프라인 연산자(|)를 사용하여 $xml 변수의 XML을 Select-XML cmdlet으로 보냅니다.
here-string에 대한 자세한 내용을 보려면 about_Quoting_Rules를 입력하십시오.