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

  1. 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.
  2. 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

Mòdul 2: Scripting Bàsic

Mòdul 3: Treballant amb Objectes

Mòdul 4: Tècniques Avançades de Scripting

Mòdul 5: Automatització i Programació de Tasques

Mòdul 6: Remotització amb PowerShell

Mòdul 7: Funcions Avançades de PowerShell

Mòdul 8: PowerShell i DevOps

Mòdul 9: Millors Pràctiques i Consells Avançats

© Copyright 2024. Tots els drets reservats