XPath를 사용하여 XML에서 속성 선택

Rohan Timalsina 2023년1월30일
  1. Select-Xml Cmdlet을 사용하여 PowerShell에서 XML의 특성 선택
  2. SelectNodes 메서드를 사용하여 PowerShell에서 XML의 특성 선택
  3. Get-Content Cmdlet을 사용하여 PowerShell에서 XML의 특성 선택
XPath를 사용하여 XML에서 속성 선택

XML은 Extensible Markup Language의 약자입니다. XML 파일은 문서의 구조를 정의하는 사용자 정의 태그가 있는 일반 텍스트 파일입니다.

주로 구조화된 정보를 저장하고 공유하는 데 사용됩니다. XML 파일의 내용은 HTML 파일과 유사합니다.

이 자습서에서는 PowerShell에서 XPath를 사용하여 XML에서 특성을 선택하는 다양한 방법을 소개합니다.

Select-Xml Cmdlet을 사용하여 PowerShell에서 XML의 특성 선택

Select-Xml cmdlet을 사용하면 XPath를 사용하여 XML 문자열 또는 문서에서 텍스트를 찾을 수 있습니다.

이것은 XML 파일의 간단한 예입니다.

<website>
<site name="DelftStack">
<content>
<topic>PowerShell Howtos</topic>
<article>How to convert XML into CSV?</article>
</content>
</site>
<site name="DelftStack">
<content>
<topic>Linux Howtos</topic>
<article>Delete Files Recursively in Linux</article>
</content>
</site>
</website>

다음 명령은 C:\Users\rhntm 디렉토리의 new.xml 파일에서 XPath 쿼리 topic을 검색합니다.

Select-Xml -Path C:\Users\rhntm\new.xml -XPath "//topic" | Select-Object -ExpandProperty Node

출력:

#text
-----
PowerShell Howtos
Linux Howtos

-Path 매개변수는 검색할 XML 파일의 경로와 파일 이름을 지정합니다.

-XPath 매개변수는 검색할 XPath 쿼리를 지정합니다. 쿼리 텍스트는 대소문자를 구분합니다.

SelectNodes 메서드를 사용하여 PowerShell에서 XML의 특성 선택

SelectNodes() 메소드는 XML 파일의 XPath 표현식과 일치하는 노드 목록을 선택합니다.

다음 예는 new.xml 파일에서 content 노드를 선택합니다.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content')

출력:

topic             article
-----             -------
PowerShell Howtos How to convert XML into CSV?
Linux Howtos      Delete Files Recursively in Linux

[xml]은 변수를 XML 개체로 캐스팅합니다. Get-Content cmdlet은 C:\Users\rhntm\new.xml의 내용을 가져와 $xml 변수에 저장합니다.

특정 특성을 선택하려면 Select-Object cmdlet을 사용할 수 있습니다. 예를 들어, 다음 명령은 new.xml 파일에서 article만 선택합니다.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.SelectNodes('//content') | Select-Object article

출력:

article
-------
How to convert XML into CSV?
Delete Files Recursively in Linux

Get-Content Cmdlet을 사용하여 PowerShell에서 XML의 특성 선택

위에서 본 것처럼 Get-Content cmdlet은 XML 파일의 내용을 가져옵니다. 내용을 변수에 저장하고 XML 개체로 캐스팅할 수 있습니다.

다음 예는 Get-Content를 사용하고 XML 파일에서 속성을 선택하는 방법을 보여줍니다.

[xml]$xml = Get-Content 'C:\Users\rhntm\new.xml'
$xml.website.site.content.topic

출력:

PowerShell Howtos
Linux Howtos

이것은 XML 파일에서 텍스트 값을 원하는 경우 사용하기 쉬운 방법입니다. 이것이 PowerShell에서 XML의 특성을 선택하는 방법에 도움이 되었기를 바랍니다.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

관련 문장 - PowerShell XML