获取XML文件的特定属性

时间:2016-02-17 12:13:31

标签: c++ xml qt dom sax

我需要获得subchild的属性,Subchild的标签都是相同的,我需要区分属性的名称。

XML:



<HEADER>
  <TITLE>title</TITLE>
  <AUTOR>DNL</AUTOR>
  <PLATFORM>Windows</PLATFORM>
  <TEST_ENV>HiL</TEST_ENV>
</Header>

<VARIABLES>
  <VAR Name="ABC" Value="1hhh4"></VAR>
  <VAR Name="EFG" Value="343hkn"></VAR>
  <VAR Name="IHJ" Value="1asds12" ></VAR>
  <VAR Name="LMO" Value="43hjjn"></VAR>
  <VAR Name="PQR" Value="1sdf43"></VAR>
 <VARIABLES>
&#13;
&#13;
&#13;

直到现在的代码:

&#13;
&#13;
void MainWindow::StartUpScriptSetter(QString xmlpath)
{
    QString Title;
    QString Platform;
    QString Author;
    QString TEST;
    
    xmlget.load(xmlpath);
    xmlget.findAndDescend("HEADER");
    if(xmlget.find("TITLE"))
    {
        startup = xmlget.getString();
    }
    if(xmlget.find("PLATFORM"))
    {
        ini = xmlget.getString();
    }
    if(xmlget.find("AUTHOR"))
    {
        zbf_file = xmlget.getString();
    }
    if(xmlget.find("TEST_ENV"))
    {
        zbf_root = xmlget.getString();
    }
  xmlget.save(xmlpath)

}
&#13;
&#13;
&#13;

直到现在我已成功获取HEADER的所有属性,我只想要VARIABLES的特定属性 我需要value的{​​{1}}属性。我该怎么做?

1 个答案:

答案 0 :(得分:0)

if(xmlget.findAndDescend("VARIABLES")) {
if(xmlget.find("VAR")) {
        QString name = xmlget.getAttributeString("Name", "");
            if(!name.isEmpty() && name.compare("What you are looking for") == 0)
                QString value = xmlget.getAttributeString("Value");
    }

}