다음을 통해 공유


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를 입력하십시오.





참고 항목

개념

ConvertTo-XML