简单XML文件解析
2010-11-10 18:37
357 查看
代码:
XML文件:
#include <MsXml2.h> #include <atlbase.h> #include <atlconv.h> #include <iostream> using namespace std; void main(int argc,char*argv[]) { if(FAILED(CoInitialize(NULL))) { cout<<"fail to initialize com."<<endl; return; } CComPtr<IXMLDOMDocument> spDoc; spDoc.CoCreateInstance(__uuidof(DOMDocument)); VARIANT_BOOL bResult = FALSE; USES_CONVERSION; LPTSTR lpwFileName = TEXT("test.xml"); CComVariant varFileName; varFileName = T2OLE(lpwFileName); spDoc->load(varFileName,&bResult); CComPtr<IXMLDOMNodeList> spNodeList; spDoc->getElementsByTagName(L"PacketHead/LogRoot/AutoLog/Item",&spNodeList); long lLen = 0; spNodeList->get_length(&lLen); for (long i=0;i<lLen;i++) { CComPtr<IXMLDOMNode> spDOMNode; spNodeList->get_item(i,&spDOMNode); CComPtr<IXMLDOMNodeList> spSubNodeList; spDOMNode->get_childNodes(&spSubNodeList); long lSubLen = 0; spSubNodeList->get_length(&lSubLen); for(int j=0;j<lSubLen;j++) { CComPtr<IXMLDOMNode> spSubNode; spNodeList->get_item(j,&spSubNode); CComVariant varValue; spSubNode->get_nodeTypedValue(&varValue); if(0 == j) cout<<"Node:"<<endl; else if(1 == j) cout<<"Log:"<<endl; spSubNode.Release(); } spSubNodeList.Release(); spDOMNode.Release(); } spNodeList.Release(); spDoc.Release(); CoUninitialize(); }
XML文件:
- <PacketHead Len="610" RemoteIP="455465604" LocalPort="8088" TimeStamp="1282494170" ID="999" Version="3.10.5.20"> - <LogRoot> - <AutoLog> - <Item> <Node>CUpdateThread::UpdateProc/CUpdateThread::CheckVersion</Node> <Log>Get_Storm_ctrl_a.ini</Log> </Item> - <Item> <Node>CUpdateThread::UpdateProc</Node> <Log>Load ECS of server.ecs [s:3.10.8.6 / c:3.10.5.20][osVer:5.1]</Log> </Item> - <Item> <Node>CUpdateThread::UpdateProc/CUpdateThread::MainProc/CExprTree::CheckAndUpdate</Node> <Log>Update State [1] = [ad]</Log> </Item> - <Item> <Node>CUpdateThread::UpdateProc/CUpdateThread::MainProc</Node> <Log>Check Success</Log> </Item> - <Item> <Node>CUpdateThread::UpdateProc</Node> <Log>Update_Thread_End</Log> </Item> </AutoLog> </LogRoot> </PacketHead>
相关文章推荐
- XML文件的简单初步解析
- android(12)(简单学生管理系统,包括文件写入SD卡,pull解析xml文件等)
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- Android一个简单的xml文件解析
- TinyXml库简单解析xml文件
- Java 通过正则表达式实现简单xml文件解析
- java--通过sax方式解析xml文件的简单实例
- andriod解析XML文件,超级简单!
- 如何在WebService接收一个XML文件并解析,客户端如何发送这个XML文件?急求简单代码示例。。
- SAX解析XML文件的简单应用
- 简单地解析XML文件
- 在已知XML文件内容时,使用dom4j简单解析XML(String类型的XML)(用于服务器端)
- JAVA使用simpleframework简单的解析XML文件
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- ajax简单解析xml文件(复杂的解析可以通过后台程序实现,如一般处理程序)
- (二)Java解析XML:一个简单的解析XML文件的例子
- Android中使用Pull解析器解析xml文件+进行简单的单元测试
- XMLParser解析创建简单的XML文件
- 用python来解析xml文件(简单情况)
- Java解析、读取XML文件并存入TXT文件的简单例子