2016-03-21 17 views
-1

Ich habe eine riesige XML, die ich jeden Tag im Bienenstock mit Xpath verarbeiten muss. Da Xpath nicht gut mit Kommentaren und Namespaces funktioniert, suche ich nach einem Bash/Python-Skript, um dasselbe zu entfernen.Formatieren eines XML

Die Anzahl der Tags und die Anzahl der Kommentarzeilen ist nicht konstant jeden Tag, , also kann ich keine konstante Identität xslt dafür verwenden. Auch ordentlich ist nicht vorhanden, das ist für mich keine Option.

Jede Anleitung zum Parsing dies mit Bash oder Python wäre hilfreich.

XML-Beispiel

<?xml version="1.0" encoding="utf-8"?> 

<tag1 xmlns:xsi="--dummy--" xmlns="--dummy---"> 

<tag2> 

<!-- Default Codec Profile --> 

    <configitem name="att1" type="string">attval</configitem> 
</tag2> 

+2

Aber XPATH funktioniert gut mit Kommentaren und Namespaces. Warum sie entfernen? Du hast in Betracht gezogen, dass XSLT sie entfernt, aber dann ist XSLT XPATH-basiert, also hast du das Problem nicht wirklich behoben. – tdelaney

+0

Xpath-Funktionen in der Struktur extrahieren keine Tag-Werte, wenn Namespaces und Kommentare vorhanden sind. Vielleicht ist das noch nicht hinzugefügt. – sushma

Antwort

1

Ich empfehle xmlstarlet ‚s-Format-Funktion. Große Mengen von XML können mit dem Aufruf xml fo schnell umformatiert oder schön gedruckt werden.

+0

Danke, das hat mir geholfen, die Kommentare perfekt zu entfernen. Arbeiten daran, um Versions- und Namespace-Informationen zu entfernen. – sushma

Verwandte Themen