HOWTO · PowerShell
PowerShell 스크립트를 사용하여 XML 파일 콘텐츠 수정
이 자습서에서는 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 환경에서만 실행 가능합니다.