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;
}
}
xml文件解析
最新推荐文章于 2022-08-13 21:41:40 发布