본문 바로가기

OS-서버/윈도우

Powershell XML

반응형

 

●  xml 파일 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$Filepath = "C:\Users\TEST.xml"
 
# Create The Document
$XmlWriter = New-Object System.XMl.XmlTextWriter($Filepath,$Null)
 
# Set The Formatting
$xmlWriter.Formatting = "Indented"
$xmlWriter.Indentation = "4"
 
# Write the XML Decleration
$xmlWriter.WriteStartDocument()
 
# Write Root Element
$xmlWriter.WriteStartElement("script")
 
# Write the Document
$xmlWriter.WriteStartElement('os')
$xmlWriter.WriteAttributeString("Name","window")
$xmlWriter.WriteEndElement() 
 
$xmlWriter.WriteStartElement('os')
$xmlWriter.WriteAttributeString("Name","linux")
$xmlWriter.WriteEndElement()  
 
$xmlWriter.WriteStartElement('os')
$xmlWriter.WriteAttributeString("Name","Unix")
$xmlWriter.WriteEndElement()  
 
# Write Close Tag for Root Element
$xmlWriter.WriteEndElement() 
 
# End the XML Document
$xmlWriter.WriteEndDocument()
 
 
# Finish The Document
$xmlWriter.Finalize
$xmlWriter.Flush
$xmlWriter.Close()
cs

 

TEST.xml ↘ 

<?xml version="1.0"?>
<script>
    <os Name="window" />
    <os Name="linux" />
    <os Name="Unix" />
</script>
cs

 

 

 

●  XML 파일 다루기

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 노드 값 조회 
$xml.selectnodes($xPath| % { $_.'#text' } # 복수 노드 선택
# 노드 개수 구하기
$root_node = $xml.SelectSingleNode($xPath) # 단일 노드 선택
$node_cnt = $root_node.selectnodes($xPath2).Count
# 노드 추가
$root_node.AppendChild($node_element)
 
 
 
# 불러오기
$Load_xml = [xml](Get-Content C:\Users\TEST.xml)
     
# 저장
$Element = $Load_xml.CreateElement("ip_address"# 새 element 생성
$Element.SetAttribute('value',"192.168.0.10"#   .. 속성부여
$Element.InnerText = "window_xml" # .. 값 삽입 
 
$Load_xml.script.os[0].AppendChild($Element# xml 노드 추가
 
$Load_xml.Save($Filepath)
cs

 

 

TEST.xml(14줄 이후) ↘ 

<?xml version="1.0"?>
<script>
  <os Name="window">
    <ip_address value="192.168.0.10">win</ip_address>
  </os>
  <os Name="linux" />
  <os Name="Unix" />
</script>
cs

 

 

xpath 예문 - https://www.w3schools.com/xml/xpath_syntax.asp

반응형

'OS-서버 > 윈도우' 카테고리의 다른 글

Powershell 엑셀 사용  (0) 2018.10.05
Powershell 원격에서 ssh 명령 실행 , 파일 전송  (0) 2018.03.20
Powershell 잡지식  (0) 2018.03.20
Powershell 원격 제어  (0) 2018.03.20
Powershell Alias  (0) 2018.03.20