All pastes #459902 Raw Edit

Stuff

public text v1 · immutable
#459902 ·published 2007-04-26 19:18 UTC
rendered paste body
    xmlDocPtr doc = xmlReadDoc((xmlChar*)strxml, NULL, NULL, 0);
    parse(xmlDocGetRootElement(doc)); 

void parse(xmlNodePtr node)
{
    node = node->xmlChildrenNode;
    
    while (node != NULL) {
        if (node->type == XML_ELEMENT_NODE) {
            if (!xmlStrcasecmp(node->name, (xmlChar*)"place")) {
                xmlChar *id = xmlGetProp(node, (xmlChar*)"id");
                places[(char*)id] = placesno++;
                lastplace = (char*)id;
                placesvec.push_back(lastplace);
            } else if (!xmlStrcasecmp(node->name, (xmlChar*)"text")) {
                marks[lastplace]= atoi((char*)node->xmlChildrenNode->content);
            } else if (!xmlStrcasecmp(node->name, (xmlChar*)"transition")) {
                xmlChar *id = xmlGetProp(node, (xmlChar*)"id");
                trans[(char*)id] = transno++;
            } else if (!xmlStrcasecmp(node->name, (xmlChar*)"arc")) {
                xmlChar *src = xmlGetProp(node, (xmlChar*)"source");
                xmlChar *dest = xmlGetProp(node, (xmlChar*)"target");
                arc a;
                a.src = (char*) src;
                a.dest = (char*) dest;
                net.push_back(a);
            }
            parse(node);
        }
        node = node->next;
    }
}