Я анализирую довольно сложный XML-файл следующей структуры:
<root><br/> ... <br/> ...<br/> <item> <br/> <subitem id="1"/><br/> <text><br/> text1<br/> </text><br/> </item><br/> <item><br/> <subitem id="2"/><br/> <text><br/> text2<br/> </text> <br/> </item><br/> ...<br/> <item><br/> ...<br/> </item><br/> ...<br/></root>
Это довольно грубо, но я надеюсь, вы меня поняли.Меня в первую очередь интересуют узлы "item".Поэтому я написал следующий код (прямо из онлайн-руководства Qt):
QXmlQuery query;
query.setQuery("//item/");
QXmlResultItems result;
query.evaluateTo(&result);
QXmlItem item(result.next());
while (!item.isNull())
{
if (item.isNode())
{
// WHAT DO I DO NOW?
}
item = result.next();
}
Теперь QXmlItem, по-видимому, представляет две концепции: литеральное значение (например, строку) или узел (чтоitem.isNode () делает).К сожалению, я не могу понять, как преобразовать QXmlItem во что-то, что снова сможет выполнять запросы.В частности, из приведенного выше примера я хотел бы получить атрибут «id» и текстовый элемент.Могу ли я сделать это, используя подход XQuery, или я далеко от базы?
Любой совет?
Спасибо!