#include using namespace std;
void readXMLBetter(string& fileName, int (&arrays)[8], int arraySize, int& cgId, int& flag)
{
xmlDocPtr doc = xmlParseFile(fileName.c_str());
if (doc == NULL)
{
cout
while (curElement)
{
//如果是text则链表向下走一位
if (!xmlStrcmp(curElement->name,(const xmlChar*)"text"))
{
curElement = curElement->next;
if (curElement == NULL)
break;
}
xmlNodePtr curNode = curElement->xmlChildrenNode;
//得到categoryId,判断是否跟cgId相等
if (!xmlStrcmp(curNode->name,(const xmlChar*)"text"))
{
curNode = curNode->next;
if (curNode == NULL)
break;
}
xmlChar* tmp = xmlNodeGetContent(curNode);
int categoryId = atoi((char *)tmp);
xmlFree(tmp);
curNode = curNode->next;
if (categoryId == cgId)
{
int i = 0;
while(curNode)
{
if (!xmlStrcmp(curNode->name,(const xmlChar*)"text"))
{
curNode = curNode->next;
if (curNode == NULL)
break;
}
xmlChar* tmp = xmlNodeGetContent(curNode);
if (i < arraySize)
arrays[i++] = atoi((char *)tmp);
xmlFree(tmp);
curNode = curNode->next;
}
}
curElement = curElement->next;
}
xmlFree(doc);
}
int main()
{
string fileName = "category.xml";
int categorys[5] = {12, 23, 25, 30, 45};
for (int i = 0; i < 5; ++i)
{
int flag = 0;
int arrays[8] = {1, 1, 1, 1, 1, 1, 1, 1};
readXMLBetter(fileName, arrays, 8, categorys[i], flag);
int brand = arrays[0];
int color = arrays[1];
int marketTime = arrays[2];
int model = arrays[3];
int productFuc = arrays[4];
int netSize = arrays[5];
int pkgSize = arrays[6];
int pkgList = arrays[7];
cout<