PowerShell을 사용하여 XML 파일에서 값을 수정 / 작성할 수 있는지 알고 싶습니다. 기본적으로 나는 관심이있다 :
- XML 파일에서 값을 수정하거나 존재하지 않는 경우 작성하십시오 (예 : 항목을 검색하고 존재하지 않는 경우 작성하고 값을 수정해야 함)
- 같은 XML 파일에서 다른 XML 구문을 처리하십시오.
구문 1 :
<설정> <setting id = "Location2"value = "바르셀로나, 스페인"/> <setting id = "Location2id"value = "zmw : 00000.1.08181"/> </ settings>
구문 2 :
<설정> <뮤직 플레이어> <crossfade> 0 </ crossfade> <queuebydefault> false </ queuebydefault> </ musicplayer> </ settings>
구문 3 :
<설정> <스킨 설정> <setting type = "bool"name = "skin.confluence.HomepageHideRecentlyAddedVideo"> 거짓 </ setting> </ skinsettings> </ settings>
어떤 도움이라도 대단히 감사하겠습니다.
감사.
답변
PowerShell은 XML 파일 처리를 완벽하게 지원합니다.
예를 들어, 우리가 제공 한 첫 번째 블러를 가져 와서 settings.xml
“C : \ blah”폴더에 이름이 지정된 XML 파일에 붙여 넣으면 다음과 같이 각 설정의 ID를 얻을 수 있습니다.
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.setting.id
다음을 반환합니다 :
Location2
Location2id
과
$myXML.settings.setting.value
보고:
Barcelona, Spain
zmw:00000.1.08181
XML 파일 내용을 구문 # 2에서 제공 한 흐림으로 바꾼 경우 :
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.musicplayer.crossfade
보고:
0
을 읽으려면 crossfade
2로 변경하고 다시 저장하십시오.
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.musicplayer.crossfade = 2
$myXML.Save("C:\blah\settings.xml")
주석 후 편집 :
바르셀로나 예제에서와 같이 XML 요소 자체를 변경하는 것은 포함 된 데이터가 아니라 XML 구조 자체를 편집하기 때문에 약간 까다 롭습니다.
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.ChildNodes.Item(0).value = "New York, USA"
$myXML.Save("C:\blah\settings.xml")
스킨 설정 예제의 경우 다음과 같이 시도하십시오.
$myXML.settings.skinsettings.setting."#text" = "true"
다음 자료를 확인하십시오.