У меня возникли проблемы с использованием TinyXML2 по Слепой разобрать XML-страницу для определенных тегов.Слепо разобрать XML-страницу для определенных тегов
В принципе, меня просят проанализировать через C++ HTML-страницу. Я использую (довольно старую) библиотеку tidyHTML, чтобы сначала «перевести» мои HTML-страницы в XML-файлы. Затем я хочу использовать TinyXML2 для анализа этих вновь созданных XML-страниц для содержимого определенных тегов (название, h1, ключевые слова метаданных ...).
С этой целью я пытаюсь перебрать все теги в моей странице XML, используя этот код:
XMLDocument doc;
doc.Parse(cleanedHTML.c_str());
XMLNode* currentNode;
if(currentNode->NoChildren())
{
while(!currentNode->NextSibling())
{
currentNode=currentNode->Parent();
if(!currentNode)
return NULL;
}
currentNode=currentNode->NextSibling();
}
else
{
currentNode=currentNode->FirstChild();
}
doc.Print();
std::string nodeName = currentNode->LastChild()->Value();
return nodeName;
Есть, вероятно, несколько вещей неправильно с этим кодом - нет сомнений, я явно любитель. Но результат все еще меня озадачивает: nodeName возвращает «USER = root« независимо от того, какую страницу я обрабатываю.
Я попытался выбора связанных элементов данного узла, как currentNode->FirstChildElement() или LastChildElement() или даже Братья и сестры ... Но каждый раз это приводит к Сегментация Fault, который я не могу понять.
Я читал, что Xpath был бы хорошим способом сделать то, что я пытаюсь сделать, но опять же у меня заканчивается время, и я боюсь, что не смогу обернуть свой разум вокруг Xpath в таком относительно коротком уведомлении.
Я, вероятно, смотрю на все это неправильно, или, может быть, я должен использовать Accept()?
Я честно чувствую себя немного потерянным здесь и буду признателен за любую помощь, которую вы, ребята, так любезны предложить!
Я хотел бы воспользоваться этой возможностью, чтобы также поблагодарить этот сайт, который так помог мне в прошлом. Поистине удивительно.
Спасибо заранее за ваши ответы!
вы проверили «очищены» XML является на самом деле, ** ** действительный XML? – WhozCraig
Ну, я стараюсь сначала с очень простым кодом (6 элементов и десятком узлов сверху) и хорошо ... xmlvalidation.com не встречает никаких ошибок. Теперь я попытаюсь разобрать аналогично, но только ** ELEMENTS ** и через ** цикл ** **. – Gyromitre