Я пытаюсь разобрать XML-файл, и я нашел правильный тег заголовка, но есть несколько тегов заголовков, и мне нужно разобрать только первый один. В настоящее время мой код выводит все теги заголовка Например:Как анализировать только 1 тег, когда есть однообразное имя с использованием Xerces C++
<book>
<title>
<title>
<title>
<book>
<movie>
<title>
<movie>
мне нужен только первый титул в книге.
Мой текущий код вытаскивает все теги заголовков в книге и выводит их. Есть ли способ остановиться после первого названия? Благодарю.
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);
Я не уверен, что понимаю, что вы имеете в виду. Я играл с этим кодом, и он либо печатает одно и то же, либо пустые теги – govCode
@govCode Поскольку способ захвата названия является фиктивным. Если вы не знаете, как получить фактическое содержание заголовка, задайте еще один вопрос. В противном случае, чтобы проверить код, добавьте атрибут 'id' к вашим элементам заголовка в вашем исходном документе и используйте его значение (через параметр' attrs') в 'titleBuffer' –