PowerShell 스크립트를 사용하여 XML 파일 콘텐츠 수정

MD Aminul Islam 2023년6월20일
  1. 방법 1: 하위 위치 사용
  2. 방법 1: ID 사용
  3. 방법 3: settings.skinsettings.setting 사용
PowerShell 스크립트를 사용하여 XML 파일 콘텐츠 수정

Extensible Markup Language라고도 하는 XML은 주로 간단한 텍스트 기반 형식을 사용하여 문서, 데이터, 책 등과 같은 구조화된 정보를 나타내는 데 사용됩니다.

이 문서는 PowerShell 스크립트를 사용하여 XML 파일을 수정하는 방법을 보여줍니다. 또한 주제를 쉽게 이해할 수 있도록 필요한 예와 설명을 볼 것입니다.

아래 내용이 포함된 XML 파일이 있다고 가정합니다.

<settings>
  <setting id="LocationOne" value="Dhaka, Bangladesh" />
  <setting id="LocationTwo" value="zmw:00000.1.08181" />
</settings>

이제 세 가지 방법을 사용하여 위의 XML 파일을 수정하겠습니다.

방법 1: 하위 위치 사용

특정 부모 노드의 자식 위치를 알면 특정 자식 노드의 값을 쉽게 수정할 수 있습니다. 이를 위해 아래 제공된 코드 예제를 따를 수 있습니다.

$xml=[xml](Get-Content "G:\PowerShell\Myxml.xml")
$xml.settings.ChildNodes.Item(0).value = "New York, USA"
$xml.Save("G:\PowerShell\Myxml.xml")

위의 예에서는 먼저 XML 파일의 내용을 읽은 다음 해당 위치를 사용하여 자식 노드를 찾습니다. 여기서 ChildNodes는 자식 노드를 찾는 데 사용되며 Item(0)을 사용하여 특정 자식을 선택합니다.

마지막으로 $xml.Save("G:\PowerShell\Myxml.xml") 줄을 사용하여 수정된 XML 파일을 저장합니다. 스크립트를 실행하면 XML 파일에 다음 내용이 표시됩니다.

<settings>
  <setting id="LocationOne" value="New York, USA" />
  <setting id="LocationTwo" value="zmw:00000.1.08181" />
</settings>

방법 1: ID 사용

또한 특정 요소의 id를 사용하여 XML 파일을 수정할 수 있습니다. 여기서 id는 주로 특정 자식 노드를 선택하는 데 사용됩니다. 아래 공유된 예에 따라 이 방법을 사용하여 XML 파일을 수정할 수 있습니다.

$xml=[xml](Get-Content "G:\PowerShell\Myxml.xml")
$xml.settings.SelectSingleNode("//setting[@id='LocationOne']").value = "New York, USA"
$xml.Save("G:\PowerShell\Myxml.xml")

이전 예제와 마찬가지로 먼저 XML 파일의 내용을 읽습니다. 그런 다음 SelectSingleNode("//setting[@id='LocationOne']")를 사용하여 특정 자식 노드를 선택하고 value를 사용하여 해당 값을 변경합니다.

마지막으로 $xml.Save("G:\PowerShell\Myxml.xml") 줄을 사용하여 수정된 XML 파일을 저장했습니다.
이제 위의 스크립트를 실행하면 XML 파일 내부에 아래 내용이 표시됩니다.

<settings>
  <setting id="LocationOne" value="New York, USA" />
  <setting id="LocationTwo" value="zmw:00000.1.08181" />
</settings>

방법 3: settings.skinsettings.setting 사용

상위 노드에 단일 하위 노드가 포함된 경우 이 예를 따를 수 있습니다. 이 방법을 이해하기 위해 아래 내용이 포함된 XML 파일이 있다고 가정합니다.

<settings>
  <skinsettings>
    <setting type="bool">false</setting>
  </skinsettings>
</settings>

이 방법을 사용하여 위에서 공유한 XML 파일을 수정한 아래 예를 살펴보십시오. 예제의 코드는 다음과 같습니다.

$xml=[xml](Get-Content "G:\PowerShell\Myxml.xml")
$xml.settings.skinsettings.setting."#text" = "true"
$xml.Save("G:\PowerShell\Myxml.xml")

위의 예에서 XML 파일의 내용을 읽은 후 settings.skinsettings.setting 줄을 사용하여 특정 자식 노드를 선택합니다.

마지막으로 $xml.Save("G:\PowerShell\Myxml.xml") 줄을 사용하여 수정된 XML 파일을 저장했습니다. 아래 공유된 예에 따라 이 방법을 사용하여 XML 파일을 수정할 수 있습니다.

<settings>
  <skinsettings>
    <setting type="bool">true</setting>
  </skinsettings>
</settings>

여기에 공유된 예제 코드는 Windows PowerShell 환경에서만 실행 가능합니다.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn

관련 문장 - PowerShell XML