PowerShell을 사용하여 XML 파일에서 값을 수정 / 만드는 방법은 무엇입니까? = “zmw : 00000.1.08181″/> </ settings> 구문

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

을 읽으려면 crossfade2로 변경하고 다시 저장하십시오.

[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"

다음 자료를 확인하십시오.