aus
Post #108
Zitat von
Zwoetzen:
Allerdings bin ich da schon auf einen nächsten Fehler gestoßen:
Test-Prozedur:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
const
S:
String = '
<root>Some Text<child>Ding</child>Something else</root>';
// <-- Sollte gültiges XML sein
var
XML: TXMLFile;
begin
XML := TXMLFile.Create;
try
XML.asXML := S;
ShowMessage(
XML.RootNode.XMLText);
finally
XML.Free;
end;
end;
Normalerweise würde man davon ausgehen, dass man nun als Ausgabe genau den Teil zwischen den <root>-Tags bekommt, allerdings erscheint:
Zitat von
ShowMessage:
Some Tex
<child>Ding</child>
Something els
Das bedeutet, dass sowohl das letzte Zeichen vor dem öffnenden <child> als auch vor dem schließenden </root> fehlt. Habe es mit verschiedenen Werten probiert, es scheint immer genau ein Zeichen zu fehlen.
da war ein kleiner "Trim"-Fehler in Bezug auf den Nodetyp xtUnknown, welcher in der Prozedur AssembleTree jeweil ein Zeichen zuviel entfernte
beim Einlesen war alles noch OK und auch wärend man mit dem Bäumchen arbeitete ... es verschand also nur wärend des Speicherns
hab auch gleich mal die restlichen verbliebenen (langsameren) Suchschleifchen in ParsingTree ersetzt und ebefalls nach TXMLFile.ParsingTree._Search verlagert
Update siehe Beta in Post #1