LINUX.ORG.RU

Вот XML (как пример):

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<root
  xmlns:svg="http://www.w3.org/2000/svg"
  xmlns="http://www.w3.org/2000/svg"
  version="1.0">
    <circle
      radius="15"
      line-type="solid">
        <solid type="full" RGB="false">black</solid>
    </circle>
</root>

Вот программа (так сказать):

int main(int argc,char** argv)
{
  QDomDocument doc("domdoc");
  QFile file("../another.xml");
  if(!file.open(QIODevice::ReadOnly))
  { std::cout<<"Error open file\n"; return 1; }
  if(!doc.setContent(&file))
  { std::cout<<"Error set content\n"; file.close(); return 1; }
  QDomElement element=doc.documentElement();
  QDomNode node=element.firstChild();
  while(!node.isNull())
  {
    QDomElement e=node.toElement();
    if(!e.isNull())
    {  std::cout<<e.tagName().toStdString()<<std::endl;  }
    QDomNode child=node.firstChild();
    if(!child.isNull())
    {
      while(!child.isNull())
      {
        QDomElement e=child.toElement();
        if(!e.isNull())
        {
          std::cout<<"\t"<<e.tagName().toStdString()<<std::endl;
          std::cout<<"\te.nodeValue()="
                   <<e.nodeValue().toStdString()
                   <<std::endl;
        }
        child=child.nextSibling();
      }
    }
    node=node.nextSibling();
  }
  file.close();
  return 0;
}

one_more_hokum ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

>QDomElement e=child.toElement();

>e.nodeValue().toStdString()

У QDomElement нет nodeValue. Можно вместо e.nodeValue() использовать e.text(), а можно QDomNode::firstChild():

 QDomNode child=node.firstChild();
    if(!child.isNull())
    {
      while(!child.isNull())
      {
QString t = child.firstChild().toText().data();

summatus
()
Ответ на: комментарий от summatus

> У QDomElement нет nodeValue.

Ага, я тоже догадался. :-) Сделал через получение QDomNode, а из него уже -- nodeValue().
Но всё равно спасибо за помощь.

one_more_hokum ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.