2016-04-14 12 views
0

Ich verwende die QDom-Klassen, um eine XML-Datei zu verarbeiten. Ich möchte, dass die Attribute in der Reihenfolge verarbeitet werden, in der sie in der XML-Datei definiert sind. Es scheint jedoch, dass die Reihenfolge der Attribute in der 'QDomNamedNodeMap' unterschiedlich ist.Qt5.5 XML-Verarbeitung mit QDom

Gibt es eine Möglichkeit sicherzustellen, dass die Bestellung wie in der XML-Datei definiert ist?

Antwort

0

Ich habe meine eigenen Klassen geschrieben, die die Datei lesen und die Knoten und Attribute verarbeiten, gemäß meiner Anforderung werden die Attribute in derselben Reihenfolge gehalten, in der sie in der Datei dargestellt werden.

2

Soweit ich weiß, können Sie sich nicht auf die Reihenfolge der Attribute in XML durch Spezifikationen verlassen. Dies könnte der Grund sein, warum Ihre Bibliothek sie in einer anderen Reihenfolge liest als die wörtliche. Selbst wenn Sie einen Weg finden, sollten Sie ihm nicht trauen: Was ist, wenn jemand anderes den XML generiert, um Ihr Programm zu füttern? Siehe here mehr über die Spezifikationen. Vielleicht kann eine Änderung im Design Ihnen helfen: Wie sieht es mit der Verschachtelung einiger Knoten aus? Die Verschachtelungsknotensequenz ist deterministisch.

+0

Ich denke schnell, dass ich meine eigenen Handler schreiben muss. – SPlatten

+0

Der XML-Code, den ich geschrieben habe, erlaubt Attributen, Makroverweise auf andere Attribute zu verwenden, warum die Reihenfolge wichtig ist, aber der Autor kann den XML-Code beliebig schreiben, solange ein Verweis auf einen anderen Verweis existiert das andere. – SPlatten

+0

@SPlatten besser nicht: Wenn jemand anderes das XML für Sie generiert, werden Sie ebenfalls Probleme haben (er kann mit Attributen in einer anderen Reihenfolge generieren) –