Как получить последний узел файла XML в QT?

В моем текущем проекте я анализирую 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 ++)

1

Решение

Я на самом деле не проверял это, поэтому в коде может быть какая-то ошибка. Однако, глядя на документацию 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();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]