For at generere en diff mellem to XML-filer på Linux med mulighed for at konfigurere strenghedsniveauer som f.eks. mellemrum og attributrækkefølge, kan du bruge forskellige værktøjer og teknikker. Her er nogle af de mest effektive metoder:
xmldiff
er et værktøj specifikt designet til at sammenligne XML-filer. Det kan håndtere forskelle i mellemrum og attributrækkefølge.
sudo apt-get install python3-lxml
sudo pip3 install xmldiff
xmldiff fil1.xml fil2.xml
XMLStarlet
er en kommandolinje-værktøjssamling til XML-redigering, forespørgsler og transformationer. Det kan også bruges til at normalisere XML-filer før sammenligning.
sudo apt-get install xmlstarlet
xmlstarlet fo --omit-decl --sort-attr fil1.xml > fil1_normalized.xml
xmlstarlet fo --omit-decl --sort-attr fil2.xml > fil2_normalized.xml
diff fil1_normalized.xml fil2_normalized.xml
diffxml
er et andet værktøj specifikt designet til at sammenligne XML-filer.
sudo apt-get install diffxml
diffxml fil1.xml fil2.xml
Hvis du har brug for mere fleksibilitet, kan du skrive et Python-script ved hjælp af lxml
biblioteket til at sammenligne XML-filer med specifikke strenghedsniveauer.
sudo apt-get install python3-lxml
from lxml import etree
import difflib
def normalize_xml(file_path):
parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse(file_path, parser)
return etree.tostring(tree, pretty_print=True, encoding='unicode')
xml1 = normalize_xml('fil1.xml')
xml2 = normalize_xml('fil2.xml')
diff = difflib.unified_diff(xml1.splitlines(), xml2.splitlines(), lineterm='')
for line in diff:
print(line)
Ved at bruge disse værktøjer og teknikker kan du effektivt generere en diff mellem to XML-filer på Linux og konfigurere strenghedsniveauer som mellemrum og attributrækkefølge.