В моем текущем проекте я анализирую XML-файл, используя класс QDomDocument. Мой XML-файл выглядит так:
<string>
<Data>
<Details>
<Content>
<Name>James</Name>
<DOB>30/09/1980</DOB>
<MobileNo/>
<Address>USA</Address>
</Content>
<Content>
<Name>Ram</Name>
<DOB>30/09/1995</DOB>
<MobileNo>9876543210</MobileNo>
<Address>India</Address>
</Content>
<Content>
<Name>Jack</Name>
<DOB/>
<MobileNo>9876543210</MobileNo>
<Address>UK</Address>
</Content>
</Details>
</Data>
В XML файле номер <Content>
теги. Как я печатаю последний <Content>
тег со всеми данными с соответствующим именем тега. Мой вывод понравится:
<Content>
<Name>Jack</Name>
<DOB/>
<MobileNo>9876543210</MobileNo>
<Address>UK</Address>
</Content>
Может кто-нибудь дать мне пример кода для этого, которые работают меня в QT (C ++)
Я на самом деле не проверял это, поэтому в коде может быть какая-то ошибка. Однако, глядя на документацию Qt Вот, Я считаю, что вы должны быть в состоянии достичь своей цели, сделав что-то вроде этого:
QDomDocument doc = // ...
QDomElement root = doc.firstChildElement("string");
QDomElement elt = root.firstChildElement("Data")
.firstChildElement("Details")
.lastChildElement("Content");
QDomNamedNodeMap nma = elt.attributes();
int nmaLength = nma.length();
for (int i=0; i<nmaLength; ++i) {
QDomAttr attr = nma.item(i).toAttr();
qDebug() << attr.name().toLocal8Bit().constData() << ": "<< attr.value().toLocal8Bit().constData();
}
Других решений пока нет …