1

在我当前的项目中,我正在使用 QDomDocument 类解析 XML 文件。我的 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++) 中工作的示例代码

4

1 回答 1

0

我还没有实际测试过这个,所以代码中可能有一些错误。但是查看此处的 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();
}
于 2016-12-28T10:59:55.070 回答