如何使用TinyXML阅读标签内的内容?

时间:2013-12-11 05:17:21

标签: tinyxml

我正在尝试阅读标签内的内容,但我没有成功。

以下是我正在尝试的内容:

int main()
{      
  TiXmlDocument *doc = new TiXmlDocument("simple-scene.xml"); 
  doc->LoadFile();

  cout << doc->FirstChildElement("width")->GetText();

  return 0;
}

这是XML文档:

<?xml version="1.0" encoding="utf-8"?>
<rt>
<image>
  <width>800</width>
  <height>600</height>
</image>
</rt>

感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

int main()
{      
  TiXmlDocument *doc = new TiXmlDocument("simple-scene.xml"); 
  doc->LoadFile();

  TiXmlElement *root = doc->FirstChildElement("rt");
  TiXmlElement *image = root->FirstChildElement("image");
  TiXmlElement *width = image->FirstChildElement("width");

  cout << width->GetText();

  return 0;
}

当然,您必须添加FirstChildElement未返回NULL的检查。每一次。

答案 1 :(得分:0)

您必须从根元素访问子元素,例如此示例:

int main()
{      
  TiXmlDocument *doc = new TiXmlDocument("simple-scene.xml"); 
  doc->LoadFile();

  TiXmlElement* root = doc.FirstChildElement( "rt" );
  if ( root )
  {
     TiXmlElement* image = root->FirstChildElement( "image" );
     if ( image )
     {
        TiXmlElement* width = element->FirstChildElement( "width" );
        if ( width )
        {
             std::string strWidth = width->GetText();
             std::cout << width->Value();
        }
     }
  }

  return 0;
}
相关问题