tinyxml解析XML文字列は、リモートXMLをロードすることができます。
2423 ワード
tinyxmlの軽量級XML解像器は、プラットフォームにまたがっています。
1:まずリモートXMLを取得し、リモートHTTPを要求する。
1:まずリモートXMLを取得し、リモートHTTPを要求する。
CString m_data;
CString m_result;
m_http.PostContent("http://www.xxxx.com/ref.php","",m_data,m_result);
ReadXmlFile(m_data);
2:tinyXMLを使って解析するbool CTESTDlg::ReadXmlFile(CString& szFileName)
{// Xml ,
try
{
//-- -------------
//CString appPath=GetAppPath();;
//CString seperator = "\\";
//CString fullPath = appPath.GetBuffer(0) +seperator+szFileName;
// XML 。
TiXmlDocument *myDocument = new TiXmlDocument();
//------------- -----------
myDocument->Parse(szFileName);
//------------- -----------
//myDocument->LoadFile(szFileName);
// 。
TiXmlElement *RootElement = myDocument->RootElement();
// 。
// cout << RootElement->Value() << endl;
AfxMessageBox(RootElement->Value());
// 。
TiXmlElement *FirstPerson = RootElement->FirstChildElement();
// 。
TiXmlElement *NameElement = FirstPerson->FirstChildElement();
TiXmlElement *AgeElement = NameElement->NextSiblingElement();
TiXmlAttribute *IDAttribute = FirstPerson->FirstAttribute();
// Person name , ;age , ;ID , 。
AfxMessageBox(NameElement->FirstChild()->Value());
AfxMessageBox(AgeElement->FirstChild()->Value());
}
catch (CString& e)
{
return false;
}
return true;
}
もう一つはc++XML解像器CMarkupです。 この解析器はリモートの解析も可能です。 CString m_data;
CString m_result;
m_http.PostContent("http://www.xxxx.com/ref.php","",m_data,m_result);
CMarkup xml;
//--------- XML------------
xml.SetDoc(m_data);
//--------- XML------------
//xml.Load("d:\\mygood.xml");
while (xml.FindChildElem("item"))
{
xml.IntoElem();
xml.FindChildElem("t_id");
CString csSN = xml.GetChildData();
xml.FindChildElem("t_name");
int nQty = atoi(xml.GetChildData());
xml.OutOfElem();
}