PowerShell을 사용하여 XML 파일 구문 분석

Marion Paul Kenneth Mendoza 2023년6월21일
  1. PowerShell XML 요소 구문 분석
  2. PowerShell XML 특성 구문 분석
PowerShell을 사용하여 XML 파일 구문 분석

Extensible Markup Language 또는 XML 형식은 오늘날에도 여전히 널리 사용됩니다. 구성 파일, RSS 피드 및 Office 파일은 XML 형식을 사용하는 몇 가지 예에 불과합니다.

Windows PowerShell을 사용하여 XML 파일을 구문 분석하는 것은 PowerShell 과정에서 필수적인 단계입니다. 이 문서에서는 Windows PowerShell을 사용하여 XML 파일을 구문 분석하는 방법에 대해 설명합니다.

PowerShell XML 요소 구문 분석

먼저 Select-XML로 XML을 구문 분석하기 위해 PowerShell을 사용하는 가장 인기 있고 쉬운 방법 중 하나를 다루겠습니다. Select-Xml PowerShell 명령을 사용하면 XML 파일 또는 문자열과 XPath 필터를 제공하여 특정 정보를 추출할 수 있습니다.

많은 PC에 PowerShell로 구문 분석하려는 XML 파일이 있습니다. 예를 들어 각 시스템에는 이름, IP 주소 및 보고서에서 사용할 수 있는 포함 요소가 있습니다.

예제 XML:

<Computers>
	<Computer>
		<Name>WINPC-01</Name>
		<Ip>127.0.0.1</Ip>
		<Include>true</Include>
	</Computer>
	<Computer>
		<Name>WINPC-02</Name>
		<Ip>192.168.1.105</Ip>
		<Include>false</Include>
	</Computer>
	<Computer>
		<Name>WINPC-03</Name>
		<Ip>192.168.1.104</Ip>
		<Include>true</Include>
	</Computer>
</Computers>

PowerShell을 사용하여 이 XML 파일을 구문 분석하고 컴퓨터 이름을 가져오려고 합니다. 이를 위해 Select-XML 명령을 사용할 수 있습니다.

예를 들어 위의 파일에서 컴퓨터 이름은 Name 요소의 내부 텍스트(InnerXML)에 나타납니다.

먼저 적절한 XPath를 제공하여 컴퓨터 이름을 찾습니다. 이 XPath 기술을 사용하여 Computer 요소에 포함된 Name 노드만 반환됩니다.

그런 다음 ForEach-Object 루프를 사용하여 각 Name 요소의 Node.InnerXML 속성에 도달하여 해당 요소의 InnerXML만 가져옵니다.

예제 코드:

Select-Xml -Path C:\PS\sample.xml -XPath '/Computers/Computer/Name' | ForEach-Object { $_.Node.InnerXML }

PowerShell XML 특성 구문 분석

이제 컴퓨터 이름을 찾는 새로운 접근 방식을 살펴보겠습니다. XML 요소로 표현되는 대신 컴퓨터 설명자는 XML 특성으로 직접 표현됩니다.

다음은 특성으로 표현된 컴퓨터 설명자가 포함된 예제 XML 파일입니다. 이제 각 설명자를 요소가 아닌 속성으로 볼 수 있습니다.

예제 코드:

<Computers>
	<Computer name="WINPC-01" ip="127.0.0.1" include="true" />
	<Computer name="WINPC-02" ip="192.168.1.104" include="false" />
	<Computer name="WINPC-03" ip="192.168.1.105" include="true" />
</Computers>

각 설명자는 속성이므로 XPath를 조정하여 Computer 요소를 찾으십시오. 그런 다음 ForEach-Object cmdlet을 사용하여 name 특성 값을 찾습니다.

예제 코드:

Select-Xml -Path C:\Work\computers-attr.xml -XPath '/Computers/Computer' | ForEach-Object { $_.Node.name }

출력:

WINPC-01
WINPC-02
WINPC-03

요소를 읽든 속성을 읽든 Select-Xml 구문은 번거롭습니다. XPath 매개변수를 사용한 다음 결과를 루프로 파이프하고 마지막으로 Node 속성 아래에서 데이터를 찾아야 합니다. .

Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

관련 문장 - PowerShell XML