XML Pretty Print i Linux Bash och Python

Xml Pretty Print I Linux Bash Och Python



XML är designat som ett mänskligt läsbart märkningsspråk, men bara om det är ganska formaterat. Om du öppnar en XML-fil kanske du inte förstår innehållet, särskilt för en stor XML-fil. Du kan dock skriva ut en XML på Bash eller Python för att göra den lättläsbar för människor. Den här guiden presenterar de olika sätten att skriva ut XML i Linux Bash och Python pretty.

Hur man skriver ut XML i Linux Bash och Python

När du arbetar med Python kan du få ett fall där du vill skriva ut XML. Det kan vara en extern XML-fil eller XML-koden som ingår i Python-skriptet. För Linux Bash kanske du vill öppna en XML-fil på din terminal för att se dess innehåll. Oavsett vilket kommer vi att se de olika sätten att skriva ut XML snyggt.







1. Pretty Print XML i Python



Innan vi går in på alternativen är följande XML-fil som vi kommer att arbeta med för vårt exempel:







I Python kan du arbeta med XML på två huvudsakliga sätt. Anta att du har den givna XML-filen som en extern fil och du vill skriva ut den snyggt. Du kan importera 'xml.dom.minidom'-biblioteket. När du har importerat kan du använda Python open() för att läsa innehållet i din externa fil. Efter det kan du använda toprettyxml() för att skriva ut din externa XML-fil pretty.

I följande exempel använder vi vår externa 'details.xml'-fil och skapar olika variabler i koden:



Vi kan sedan köra vårt Python-skript på terminalen för att få den ganska formaterade utdata som illustreras i följande figur. Observera hur användningen av DOM Python-biblioteket hjälper till att formatera XML på ett snyggt sätt, vilket gör det lätt att läsa av alla som kör Python-skriptet:

Alternativt, om du bara har en liten XML-fil, kan du infoga den direkt i ditt Python-skript. Du behöver fortfarande DOM Python-biblioteket för att formatera den interna XML i ditt skript. Funktionen som används är densamma som vid arbete med en extern XML-fil, bara att vi tar med XML direkt.

Titta på hur vi inkluderar XML i följande bild:

Du kan sedan köra ditt Python-skript som vi gjorde tidigare. Du kommer att få den vackra tryckta versionen av din XML-fil i din utdata som vad vi fick i vår följande utdata:

Det här alternativet gäller endast när din XML-fil har några rader. För en stor XML-fil, överväg att öppna den som en extern fil.

2. Pretty Print XML i Bash

På din terminal är det möjligt att se innehållet i filer inklusive XML. Du kan till exempel använda kommandot 'cat' för att visa innehållet i vår 'details.xml'-fil. Utdata är dock oläsbar på grund av dålig formatering.

För att snyggt skriva ut den här XML-filen finns det olika verktyg som du kan använda. Här kommer vi att täcka två av de vanliga. Först kan du använda 'xmlstarlet' som kommer installerat på de flesta Linux-system. Om det inte är tillgängligt på ditt system, kör följande kommando för att installera det:

sudo knäppa Installera xmlstarlet

Med 'xmlstarlet' på ditt Linux-system kan du XML ganska skriva ut din fil som illustreras i följande exempel. Din utdata kommer att vara snyggt formaterad vilket gör det lättare att läsa:

Alternativt kan du använda 'xmllint' för att uppnå samma sak. Börja med att installera det på ditt system med följande kommando:

sudo benägen Installera libxml2-utils

När den väl har installerats kan du snabbt skriva ut din XML-fil med följande syntax:

xmllint --formatera details.xml

Din XML kommer att formateras och är lätt att läsa som visas i följande exempel:

Anta att du vill skapa en utdata av den formaterade XML-filen. Du kan omdirigera utdata för att skapa en ny XML-fil som visas i följande exempel. När du öppnar den nya filen kommer du att se att du har den snygga tryckta versionen av XML:en:

Slutsats

Det är möjligt att ganska skriva ut XML-filerna i Linux Bash eller Python. Med Python kan du ganska skriva ut XML genom att infoga den i din kod eller läsa den som en extern fil. För Linux Bash kan du använda olika kommandoradsverktyg. Det här inlägget har detaljerat de bästa alternativen att använda i båda fallen. Prova dem!