ich eine XML-Datei zu analysieren versuchen, und ich habe den richtigen Titel-Tag, aber es gibt Tags mehr Titel befinden, und ich brauche nur die erstes zu analysieren ein. Derzeit gibt meinen Code alle Titel-Tags Zum Beispiel:Wie nur 1 Tag parsen, wenn mutiple mit dem gleichen Namen ist mit Xerces C++
<book>
<title>
<title>
<title>
<book>
<movie>
<title>
<movie>
ich nur den ersten Titel in Buch benötigen.
Mein aktueller Code zieht alle Titel-Tags in Buch und gibt sie aus. Gibt es eine Möglichkeit, nach dem ersten Titel aufzuhören? Vielen Dank.
void MySaxHandler::startElement(
const XMLCh* const uri,
const XMLCh* const localname,
const XMLCh* const qname,
const Attributes& attrs
) {
char* message = XMLString::transcode(localname);
if (strcmp(message, "book") == 0) {
book = true;
}
else if (book && strcmp(message, "title") == 0) {
title = true;
titleBuffer = "";
}
else if (strcmp(message, "movie") == 0) {
book = false;
}
else if (book && strcmp(message, "name") == 0) {
title = false;
}
XMLString::release(&message);
Ich bin nicht sicher, ob ich verstehe, was Sie meinen. Ich habe mit diesem Code gespielt und es druckt entweder das gleiche oder leere Tags – govCode
@govCode Weil die Art, wie Sie den Titel erfassen, ein Dummy ist. Wenn Sie nicht wissen, wie Sie den tatsächlichen Inhalt des Titels erhalten, werfen Sie eine andere Frage auf. Andernfalls, um den Code zu testen, fügen Sie Ihren Titelelementen in Ihrem Eingabedokument ein 'id'-Attribut hinzu und verwenden Sie den Wert (über' attrs' -Parameter) in den 'titleBuffer' –