En aquest tema, aprendrem com treballar amb dades en format XML i JSON utilitzant PowerShell. Aquests formats són àmpliament utilitzats per a l'intercanvi de dades entre aplicacions i serveis web. PowerShell proporciona eines potents per analitzar, manipular i generar dades en aquests formats.
Continguts
Introducció a XML i JSON
XML (eXtensible Markup Language)
XML és un llenguatge de marcatge que defineix un conjunt de regles per a l'estructuració de documents de manera que siguin llegibles tant per humans com per màquines. És utilitzat per a l'emmagatzematge i el transport de dades.
JSON (JavaScript Object Notation)
JSON és un format lleuger d'intercanvi de dades que és fàcil de llegir i escriure per humans i fàcil de parsejar i generar per màquines. És àmpliament utilitzat en aplicacions web per a l'intercanvi de dades entre el client i el servidor.
Treballant amb XML
Llegir XML
Per llegir un document XML en PowerShell, podem utilitzar el cmdlet Get-Content combinat amb el mètode [xml] per convertir el contingut en un objecte XML.
# Exemple de document XML
$xmlContent = @"
<books>
<book>
<title>Learning PowerShell</title>
<author>John Doe</author>
</book>
<book>
<title>Advanced PowerShell</title>
<author>Jane Smith</author>
</book>
</books>
"@
# Convertir el contingut en un objecte XML
[xml]$xml = $xmlContent
# Accedir a les dades
$xml.books.book | ForEach-Object {
Write-Output "Title: $($_.title)"
Write-Output "Author: $($_.author)"
}Manipular XML
Podem manipular l'objecte XML afegint, modificant o eliminant nodes.
# Afegir un nou llibre
$newBook = $xml.CreateElement("book")
$title = $xml.CreateElement("title")
$title.InnerText = "PowerShell for Experts"
$author = $xml.CreateElement("author")
$author.InnerText = "Alice Johnson"
$newBook.AppendChild($title)
$newBook.AppendChild($author)
$xml.books.AppendChild($newBook)
# Modificar un llibre existent
$xml.books.book[0].title = "Learning PowerShell - Updated"
# Eliminar un llibre
$xml.books.RemoveChild($xml.books.book[1])
# Mostrar el contingut actualitzat
$xml.OuterXmlGenerar XML
Podem generar un document XML des de zero utilitzant l'objecte XmlDocument.
# Crear un nou document XML
$xml = New-Object System.Xml.XmlDocument
$books = $xml.CreateElement("books")
$xml.AppendChild($books)
# Afegir un llibre
$book = $xml.CreateElement("book")
$title = $xml.CreateElement("title")
$title.InnerText = "Mastering PowerShell"
$author = $xml.CreateElement("author")
$author.InnerText = "Bob Brown"
$book.AppendChild($title)
$book.AppendChild($author)
$books.AppendChild($book)
# Guardar el document XML en un fitxer
$xml.Save("books.xml")Treballant amb JSON
Llegir JSON
Per llegir un document JSON en PowerShell, podem utilitzar el cmdlet Get-Content combinat amb ConvertFrom-Json per convertir el contingut en un objecte PowerShell.
# Exemple de document JSON
$jsonContent = @"
{
"books": [
{
"title": "Learning PowerShell",
"author": "John Doe"
},
{
"title": "Advanced PowerShell",
"author": "Jane Smith"
}
]
}
"@
# Convertir el contingut en un objecte PowerShell
$json = $jsonContent | ConvertFrom-Json
# Accedir a les dades
$json.books | ForEach-Object {
Write-Output "Title: $($_.title)"
Write-Output "Author: $($_.author)"
}Manipular JSON
Podem manipular l'objecte JSON afegint, modificant o eliminant propietats.
# Afegir un nou llibre
$newBook = [PSCustomObject]@{
title = "PowerShell for Experts"
author = "Alice Johnson"
}
$json.books += $newBook
# Modificar un llibre existent
$json.books[0].title = "Learning PowerShell - Updated"
# Eliminar un llibre
$json.books = $json.books | Where-Object { $_.title -ne "Advanced PowerShell" }
# Mostrar el contingut actualitzat
$json | ConvertTo-JsonGenerar JSON
Podem generar un document JSON des de zero utilitzant objectes PowerShell i ConvertTo-Json.
# Crear un nou objecte JSON
$json = [PSCustomObject]@{
books = @(
[PSCustomObject]@{
title = "Mastering PowerShell"
author = "Bob Brown"
}
)
}
# Convertir l'objecte a JSON
$jsonString = $json | ConvertTo-Json
# Guardar el document JSON en un fitxer
$jsonString | Out-File -FilePath "books.json"Exercicis Pràctics
-
Llegir i Manipular XML
- Crea un document XML amb una llista de pel·lícules (títol, director, any).
- Llegeix el document XML i mostra la llista de pel·lícules.
- Afegeix una nova pel·lícula al document XML.
- Modifica el títol d'una pel·lícula existent.
- Elimina una pel·lícula del document XML.
-
Llegir i Manipular JSON
- Crea un document JSON amb una llista de llibres (títol, autor, any).
- Llegeix el document JSON i mostra la llista de llibres.
- Afegeix un nou llibre al document JSON.
- Modifica l'autor d'un llibre existent.
- Elimina un llibre del document JSON.
Conclusió
En aquest tema, hem après com treballar amb dades en format XML i JSON utilitzant PowerShell. Hem vist com llegir, manipular i generar documents XML i JSON, i hem practicat aquests conceptes amb exercicis pràctics. Aquests coneixements són essencials per a l'intercanvi de dades entre aplicacions i serveis web, i ens permeten automatitzar tasques de manera eficient.
Curs de PowerShell
Mòdul 1: Introducció a PowerShell
- Què és PowerShell?
- Instal·lació i Configuració de PowerShell
- Consola i ISE de PowerShell
- Comandes i Sintaxi Bàsiques
- Sistema d'Ajuda en PowerShell
Mòdul 2: Scripting Bàsic
- Variables i Tipus de Dades
- Operadors en PowerShell
- Sentències Condicionals
- Bucles en PowerShell
- Funcions i Scripts
Mòdul 3: Treballant amb Objectes
- Comprensió dels Objectes
- Propietats i Mètodes dels Objectes
- Pipelines i Manipulació d'Objectes
- Filtratge i Selecció d'Objectes
- Ordenació i Agrupació d'Objectes
Mòdul 4: Tècniques Avançades de Scripting
- Gestió d'Errors
- Depuració de Scripts
- Expressions Regulars
- Treballant amb Fitxers i Directoris
- Ús de Mòduls i Snap-ins
Mòdul 5: Automatització i Programació de Tasques
- Introducció a l'Automatització
- Creació de Tasques Programades
- Ús de PowerShell per a l'Administració del Sistema
- Automatització de Tasques d'Active Directory
- Automatització de Tasques de Xarxa
Mòdul 6: Remotització amb PowerShell
- Introducció a la Remotització
- Configuració de la Remotització
- Ús d'Invoke-Command
- Gestió de Sessions
- Consideracions de Seguretat
Mòdul 7: Funcions Avançades de PowerShell
- Perfils de PowerShell
- Personalització de l'Entorn de PowerShell
- Creació i Ús de Classes
- Treballant amb XML i JSON
- Ús de PowerShell amb REST APIs
Mòdul 8: PowerShell i DevOps
- Introducció a DevOps
- Ús de PowerShell amb Pipelines CI/CD
- Infraestructura com a Codi (IaC)
- Gestió de Recursos al Núvol amb PowerShell
- PowerShell i Docker
