xml文件解析

来源:互联网 发布:苏宁易购秒杀软件 编辑:程序博客网 时间:2024/06/05 06:03
void parseXmlData(TiXmlNode* pNode,IXmlParser* pObject){if (pNode == NULL)return;TiXmlNode* pChild = pNode->FirstChild();if (pChild == NULL)return;int iType = pChild->Type();if (iType == TiXmlNode::TINYXML_ELEMENT){TiXmlNode* node = pChild;while (node){std::wstring sNodeValue = elex::strings::ascllToUnicode(std::string(node->Value()));if (pObject->isNodeExist(sNodeValue)) //读取一个语言节点下的子节点{TiXmlNode* curNode = NULL;curNode = node->FirstChild();while (curNode){TiXmlAttribute* pAttr = curNode->ToElement()->FirstAttribute();std::vector<XMLData> temData;if (pAttr){XMLData nodeData;while (pAttr) //一个节点{std::wstring sKey;sKey = elex::strings::ascllToUnicode(std::string(pAttr->Name()));if (lstrcmp(sKey.c_str(),L"id")==0){nodeData.sKey = elex::strings::ascllToUnicode(std::string(pAttr->Value()));}else if(lstrcmp(sKey.c_str(),L"value")==0){nodeData.sValue = elex::strings::ascllToUnicode(std::string(pAttr->Value()));}pAttr = pAttr->Next();}temData.push_back(nodeData);}pObject->callBackData(temData);curNode = curNode->NextSiblingElement();//parseXmlData(node,pObject);}}node  = node->NextSiblingElement();}}else if( iType == TiXmlNode::TINYXML_TEXT){               std::cout << pChild->Value()<< std::endl;                             }  }