Ich benutze boost ptree, um eine XML-Datei wie folgt zu lesen:
%Vor% Ich weiß, dass ich die Funktion what()
verwenden kann, aber es erzeugt einen Fehler und die Zeichenfolgen, die ich gerade gesendet habe.
Gibt es eine Möglichkeit, nützlichere Informationen wie die Zeilennummern in der XML-Datei zu erhalten, die für den Anruf relevant sind?
Wenn Sie fehlerhafte XML-Dateien erkennen möchten (im Gegensatz zu XML-Dokumenten, die einfach nicht die erwarteten Werte enthalten, in diesem Fall ist es nicht möglich, Zeilennummern zu erhalten):
%Vor% Nun, da t.xml
kein gültiges XML-Dokument ist:
Ein boost :: property_tree hat kein Konzept mehr für Zeilennummern. Grundsätzlich ist es nur ein iterabler Baum. Es weiß nicht, ob sein Inhalt aus einer Datei geparst, programmgesteuert hinzugefügt wurde oder aus dem Nichts kam. Daher gibt es keine Möglichkeit, eine Zeilennummer zu erhalten, wenn der Baum die gesuchten Werte nicht enthält.
Dinge, die Sie beachten sollten:
get<string>
. Es gibt viele Varianten, mit denen Sie Standardwerte festlegen, null oder andere Aktionen ausführen können, wenn die erwarteten Daten nicht vorhanden sind.