Ich lese eine einfache XML-Datei mit der internen xmlread-Funktion von Matlab.
%Vor% Aber wenn ich getChildren () vom Element ref
aufruft, sagt es mir, dass es 5 Kinder hat.
Es funktioniert einwandfrei IF Ich lege das gesamte XML in EINE Zeile . Matlab sagt mir, dass ref
element 2 children hat.
Es scheint die Räume zwischen den Elementen nicht zu mögen.
Auch wenn ich Canonicalize im oXygen XML-Editor ausführe, bekomme ich immer noch die gleichen Ergebnisse. Weil Canonicalize immer noch Leerzeichen enthält.
Matlab verwendet Java und Xerces für XML-Dateien.
Was kann ich tun, damit ich meine XML-Datei in einem für Menschen lesbaren Format behalten kann (nicht alle in einer Zeile), aber Matlab trotzdem korrekt parse?
Der XML-Parser hinter den Szenen erstellt # text-Knoten für alle Leerzeichen zwischen den Knotenelementen. Wo immer eine neue Zeile oder Einrückung vorhanden ist, wird ein # Text-Knoten mit dem Zeilenumbruch und den folgenden Einrückräumen im Datenteil des Knotens erzeugt. In dem XML-Beispiel, das Sie beim Analysieren der untergeordneten Knoten des Elements "ref" angegeben haben, gibt es 5 Knoten
zurückDiese Funktion entfernt all diese unbrauchbaren # text-Knoten für Sie. Beachten Sie, dass wenn Sie absichtlich ein xml-Element haben, das nur aus Leerzeichen besteht, wird diese Funktion es entfernen, aber für die 99,99% der xml-Fälle sollte das gut funktionieren.
%Vor%Nenn es so
%Vor%Tags und Links xml-parsing matlab