반응형
PowerShell을 사용하여 XML Element 특성의 값을 변경하는 방법은 무엇입니까?
XML 태그에서 특정 속성을 액세스하고 변경하려고 합니다.
XML:
<office>
<staff branch="Hanover" Type="sales">
<employee>
<Name>Tobias Weltner</Name>
<function>management</function>
<age>39</age>
</employee>
<employee>
<Name>Cofi Heidecke</Name>
<function>security</function>
<age>4</age>
</employee>
</staff>
<staff branch="London" Type="Technology">
<employee>
<Name>XXXX</Name>
<function>gement</function>
<age>39</age>
위의 예에서 분기 속성을 인쇄한 다음 전체 XML에서 New York와 같은 하나의 값으로 변경하고 아래 코드를 사용하여 변경하고자 합니다.
$xml=New-Object XML
$xml.Load("C:\FE6Work.xml")
$node=$xml.SelectNodes("/office/staff")
write-output $node.branch
$node.branch="New York"
그러나 요소를 찾을 수 없다는 오류가 발생합니다.
누가 좀 도와주시겠어요?
다음을 시도합니다.
$nodes = $xml.SelectNodes("/office/staff");
foreach($node in $nodes) {
$node.SetAttribute("branch", "New York");
}
SelectNodes()에서 반환된 모든 노드를 반복하고 각 노드를 수정합니다.
에서 직접 특성에 액세스할 수 있습니다.[xml]
다음과 같은 개체:
# C:\temp> $xml = [xml](Get-Content C:\FE6Work.xml)
# C:\temp> $xml.office.staff
branch Type employee
------ ---- --------
Hanover sales {Tobias Weltner, Cofi Heidecke}
London Technology {XXXX, Cofi}
# C:\temp> $xml.office.staff | foreach{$_.branch = "New York"}
# C:\temp> $xml.office.staff
branch Type employee
------ ---- --------
New York sales {Tobias Weltner, Cofi Heidecke}
New York Technology {XXXX, Cofi}
콘솔에서 속성을 가져와서 값을 변경하는 경우
$path=Read-Host -Prompt 'Enter path of xml file'
[xml]$xmldata = get-content "$path"
$tag = Read-Host -Prompt 'Enter tag'
$value = Read-Host -Prompt 'Enter value'
$xmldata.InstallConfig.$tag="$value"
$xmldata.Save($path)
언급URL : https://stackoverflow.com/questions/24679454/how-to-change-the-value-of-xml-element-attribute-using-powershell
반응형
'programing' 카테고리의 다른 글
jQuery 데이터 테이블 - 모든 행 데이터에 액세스 (0) | 2023.08.09 |
---|---|
Perconxtrabackup (0) | 2023.08.04 |
Oracle에서 고유 제약 조건 수정 (0) | 2023.08.04 |
클래스 변수가 아직 지원되지 않음 (0) | 2023.08.04 |
다양한 수의 바인딩으로 Oracle EXECUTE Immediate를 실행할 수 있습니까? (0) | 2023.08.04 |