xml文件解析
发布时间:2020-12-16 00:42: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;w
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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |