Я новичок в QT
Я разрабатываю приложение для разбора файла XML. Но формат файла выглядит так
<Class name="ABC">
<LayoutEntry name="ABB" type="class:ABB"/>
<LayoutEntry name="ACC" type="class:ACC"/>
<LayoutEntry name="ADD" type="class:ADD"/>
</Class>
<Class name="ABB"> //Declared in class ABC
<LayoutEntry name="ABB1" type="class:ABB1"/>
<LayoutEntry name="ABB2" type="class:ABB2"/>
</Class>
<Class name="ABB1"> //Declared in class ABB
<LayoutEntry name="ABB1" value=ABB1"/>
</Class>
<Class name="ABB2">
<LayoutEntry name="ABB2" value=ABB2"/>
</Class>
Пожалуйста, кто-нибудь предложит мне любую библиотеку или метод в QT для анализа этого типа XML.
Спасибо
Вы можете использовать модуль QtXML 5.8, которая является частью Qt-framework. Там вы можете найти класс QDomDocument ( QDomDocument-doc) например.
Ты можешь использовать QDomDocument
и весь класс, начинающийся с qDom.
Таким образом, вы можете получить объект, соответствующий вашему документу.
Каждая разметка будет QDomNode
и вы можете вызвать метод, как getParam, getChild или getParent.
QDomNodeList list;
list = document.elementsByTagName("Parent");
int ChildCount = list.at(0).childNodes().count();
qDebug() << "ChildCount = " << ChildCount;
QString child1,child2,child3;
for(int i=0; i < ChildCount; i++)
{
child1 = list.at(0).childNodes().at(0).toElement().text();
child2 = list.at(0).childNodes().at(1).toElement().text();
child3 = list.at(0).childNodes().at(2).toElement().text();
}