tinyXML笔记
<Class name="計(jì)算機(jī)軟件班">
????<Students>
????????<student name="張三" studentNo="13031001" sex="男" age="22">
????????????<phone>88208888</phone>
????????????<address>西安市太白南路二號(hào)</address>
????????</student>
????????<student name="李四" studentNo="13031002" sex="男" age="20">
????????????<phone>88206666</phone>
????????????<address>西安市光華路</address>
????????</student>
????</Students>
</Class>
解析程序如下:
#pragma comment("tinyxml_STL.lib", lib)
?
#include <iostream>
#include "tinyxml.h"
#include "tinystr.h"
using namespace std;
int main()
{
??? TiXmlDocument xml("hkx.xml");
??? xml.LoadFile();
??? xml.Print();
??? std::cout<<std::endl;
??? TiXmlElement* rootElement = xml.RootElement();
??? TiXmlAttribute* rootAttribute = rootElement->FirstAttribute();
??? while (rootAttribute)
??? {
??? ??? cout<<rootAttribute->Name()<<":"<<rootAttribute->Value()<<endl;
??? ??? rootAttribute = rootAttribute->Next();
??? }
??? TiXmlElement* studentsElement = rootElement->FirstChildElement();
??? TiXmlElement* studentElement = studentsElement->FirstChildElement();
??? while (studentElement)
??? {
??? ??? TiXmlAttribute* attribute = studentElement->FirstAttribute();
??? ??? while (attribute)
??? ??? {
??? ??? ??? cout<<attribute->Name()<<":"<<attribute->Value()<<endl;
??? ??? ??? attribute = attribute->Next();
??? ??? }
??? ??? TiXmlElement* phoneElement = studentElement->FirstChildElement();
??? ??? cout<<phoneElement->GetText()<<endl;
??? ??? TiXmlElement* addressElement = phoneElement->NextSiblingElement();
??? ??? cout<<addressElement->GetText()<<endl;
??? ??? studentElement = studentElement->NextSiblingElement();
??? }
??? return 0;
}
?
解析xml字符串流:
int main()
{
??? string xmlString =
??? ??? "<Class name=\"計(jì)算機(jī)軟件班\">\
??? ??? <Students>\
??? ??? <student name=\"張三\" studentNo=\"13031001\" sex=\"男\(zhòng)" age=\"22\">\
??? ??? <phone>88208888</phone>\
??? ??? <address>西安市太白南路二號(hào)</address>\
??? ??? </student>\
??? ??? <student name=\"李四\" studentNo=\"13031002\" sex=\"男\(zhòng)" age=\"20\">\
??? ??? <phone>88206666</phone>\
??? ??? <address>西安市光華路</address>\
??? ??? </student>\
??? ??? </Students>\
??? ??? </Class>";
??? TiXmlDocument* xml = new TiXmlDocument();
??? xml->Parse(xmlString.c_str());
??? xml->Print();
??? TiXmlElement* rootElement = xml->RootElement();
??? TiXmlAttribute* rootAttribute = rootElement->FirstAttribute();
??? while (rootAttribute)
??? {
??? ??? cout<<rootAttribute->Name()<<":"<<rootAttribute->Value()<<endl;
??? ??? rootAttribute = rootAttribute->Next();
??? }
??? TiXmlElement* studentsElement = rootElement->FirstChildElement();
??? TiXmlElement* studentElement = studentsElement->FirstChildElement();
??? while (studentElement)
??? {
??? ??? TiXmlAttribute* attribute = studentElement->FirstAttribute();
??? ??? while (attribute)
??? ??? {
??? ??? ??? cout<<attribute->Name()<<":"<<attribute->Value()<<endl;
??? ??? ??? attribute = attribute->Next();
??? ??? }
??? ??? TiXmlElement* phoneElement = studentElement->FirstChildElement();
??? ??? cout<<phoneElement->GetText()<<endl;
??? ??? TiXmlElement* addressElement = phoneElement->NextSiblingElement();
??? ??? cout<<addressElement->GetText()<<endl;
??? ??? studentElement = studentElement->NextSiblingElement();
??? }
??? return 0;
}
?
tinyXML的一些類:
TiXmlBase:整個(gè)TinyXML模型的基類。
TiXmlAttribute:對(duì)應(yīng)于XML中的元素的屬性。 TiXmlNode:對(duì)應(yīng)于DOM結(jié)構(gòu)中的節(jié)點(diǎn)。 TiXmlComment:對(duì)應(yīng)于XML中的注釋 TiXmlDeclaration:對(duì)應(yīng)于XML中的申明部分,<?versiong="1.0"??>。 TiXmlDocument:對(duì)應(yīng)于XML的整個(gè)文檔。 TiXmlElement:對(duì)應(yīng)于XML的元素。 TiXmlText:對(duì)應(yīng)于XML的文字部分 TiXmlUnknown:對(duì)應(yīng)于XML的未知部分。?TiXmlHandler:定義了針對(duì)XML的一些操作。
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: BZOJ 2751 容易题
- 下一篇: TGA文件