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.OuterXml
Generar 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-Json
Generar 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