Skip to content

Commit 1f17676

Browse files
committed
2 parents a44e897 + 1f561f6 commit 1f17676

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

content/post/xml.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
title: XML
3+
author: Sander Stad
4+
date: '2023-12-12'
5+
categories:
6+
- Example
7+
weight: 240
8+
---
9+
10+
XML, or eXtensible Markup Language, is a versatile data format widely used for storing and exchanging structured information. In the realm of PowerShell, XML becomes a potent ally, offering a robust mechanism for handling and manipulating data in a hierarchical and human-readable way. In this article, we'll explore the integration of XML with PowerShell, unraveling the simplicity and efficacy it brings to scriptwriters.
11+
12+
## Creating XML with PowerShell
13+
14+
PowerShell provides seamless ways to generate XML content, both manually and programmatically.
15+
16+
Let's embark on a journey by creating a basic XML structure using PowerShell's intrinsic capabilities:
17+
18+
```powershell
19+
# Creating a simple XML document
20+
$xmlDocument = New-Object System.Xml.XmlDocument
21+
22+
# Adding a root element
23+
$rootElement = $xmlDocument.CreateElement("Root")
24+
$xmlDocument.AppendChild($rootElement)
25+
26+
# Adding child elements
27+
$childElement1 = $xmlDocument.CreateElement("Child1")
28+
$childElement1.InnerText = "Value1"
29+
$rootElement.AppendChild($childElement1)
30+
31+
$childElement2 = $xmlDocument.CreateElement("Child2")
32+
$childElement2.InnerText = "Value2"
33+
$rootElement.AppendChild($childElement2)
34+
35+
# Save the XML to a file
36+
$xmlDocument.Save("C:\Path\To\Your\File.xml")
37+
```
38+
39+
Result:
40+
41+
```xml
42+
<Root>
43+
<Child1>Value1</Child1>
44+
<Child2>Value2</Child2>
45+
</Root>
46+
```
47+
48+
In this example, we create an XML document, add a root element named "Root," and populate it with two child elements, each containing a distinct value. The resulting XML is then saved to a specified file path.
49+
50+
## Reading XML with PowerShell
51+
52+
Reading XML in PowerShell is an intuitive process, allowing seamless navigation through the document's hierarchical structure.
53+
54+
Let's explore how to extract information from an XML file:
55+
56+
```powershell
57+
# Load XML from a file
58+
$xmlFilePath = "C:\Path\To\Your\File.xml"
59+
$xmlContent = Get-Content -Path $xmlFilePath
60+
$xmlDocument = [xml]$xmlContent
61+
62+
# Accessing elements
63+
$rootValue = $xmlDocument.Root.InnerText
64+
$child1Value = $xmlDocument.Root.Child1.InnerText
65+
$child2Value = $xmlDocument.Root.Child2.InnerText
66+
67+
# Displaying values
68+
Write-Host "Root Value: $rootValue"
69+
Write-Host "Child1 Value: $child1Value"
70+
Write-Host "Child2 Value: $child2Value"
71+
```
72+
73+
Result:
74+
75+
```
76+
C:\> Write-Host "Root Value: $rootValue"
77+
Root Value: Value1Value2
78+
C:\> Write-Host "Child1 Value: $child1Value"
79+
Child1 Value:
80+
C:\> Write-Host "Child2 Value: $child2Value"
81+
Child2 Value:
82+
```
83+
84+
In this snippet, we load an XML file, cast it to an XML type, and then access specific elements and their corresponding values. The result is a straightforward display of the extracted data.
85+
86+
## Modifying XML with PowerShell
87+
88+
PowerShell empowers users to dynamically modify XML content, offering unparalleled flexibility in handling changing data requirements.
89+
90+
Let's delve into an example where we update the value of a child element:
91+
92+
```powershell
93+
# Load XML from a file
94+
$xmlFilePath = "C:\Path\To\Your\File.xml"
95+
$xmlContent = Get-Content -Path $xmlFilePath
96+
$xmlDocument = [xml]$xmlContent
97+
98+
# Modify a child element's value
99+
$xmlDocument.Root.Child1 = "New Value"
100+
101+
# Save the modified XML
102+
$xmlDocument.Save($xmlFilePath)
103+
```
104+
105+
Result:
106+
107+
```xml
108+
<Root>
109+
<Child1>New Value</Child1>
110+
<Child2>Value2</Child2>
111+
</Root>
112+
```
113+
114+
In this scenario, we load the XML file, update the value of a specific child element (Child1), and then save the modified XML content back to the file.

0 commit comments

Comments
 (0)