Skip to main content
GameDev.net gamedev.net
🔒 Locked

Mapping the Values in to Buffer

Started by medhassu May 23, 2006 at 11:10 PM 0 replies 400+ views
Original Post
medhassu
medhassu
Hai Associates, I have been working on the retrieving text data from the XML string. I am using tinyxml_2_3_3 parser.I have used the following APIs to get the data void Load() { TiXmlDocument Doc; Doc.Parse(your_string); RecurseTree(&Doc); } void RecurseTree(TiXmlNode *pNode) { printf("%s\n", pNode->Value()); TiXmlNode *Child = pNode->FirstChild(); for(; Child; Child = pNode->IterateChildren(Child)) RecurseTree(Child); } By using it i am able to print the contents of the string. But i should have to copy the values from pNode->Value() in to a single buffer which should be returned to calling function. The following is my XML string. Mgmt 645268923afce PubSubComm-3 ok Hello 412 Welcome to India I have to copy all values in to a buffer from which i should be able to retrieve all the values one by one later. Please suggest any solution for it. I am working in C++ platform. [Edited by - medhassu on May 25, 2006 3:29:58 AM]
ldeej
ldeej
You need to change your recursion to detect the elements that you care about:

// pseudocode
void RecurseTree(TiXmlNode *pNode, std::vector *stuff_you_care_about)
{
if (pNode->Type()==TiXmlNode::ELEMENT)
{
ParseElement(pNode->ToElement(), stuff_you_care_about);
}

TiXmlNode *Child = pNode->FirstChild();
for(; Child; Child = pNode->IterateChildren(Child))
RecurseTree(Child, stuff_you_care_about);
}

ParseElement(TiXmlElement *pElement, std::vector *stuff_you_care_about)
{
if (pElement->Value()==value_tag_i_care_about)
{
stuff_you_care_about(pElement->FirstChild()->AsText()->Value());
}
}


Or something like that

Hope this helps

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.