DOMElement *NclImportParser::parseImportedDocumentBase( DOMElement *parentElement ) { DOMNodeList *elementNodeList; DOMElement *element; DOMNode *node; string elementTagName; //pre-compile attributes if (parentElement == NULL) { return NULL; } elementNodeList = parentElement->getChildNodes(); for (int i = 0; i < (int) elementNodeList->getLength(); i++) { node = elementNodeList->item( i ); if (node->getNodeType() == DOMNode::ELEMENT_NODE) { element = (DOMElement*) node; elementTagName = getXmlHandler()->getStr( element->getTagName() ); if (elementTagName.compare( "importNCL" ) == 0) { if (!addImportNCLToImportedDocumentBase(element)){ return NULL; } } } } return parentElement; }
void *NclImportParser::parseImportedDocumentBase( DOMElement *parentElement, void *objGrandParent) { void *parentObject; DOMNodeList *elementNodeList; DOMElement *element; DOMNode *node; string elementTagName; void *elementObject; //pre-compile attributes parentObject = createImportedDocumentBase( parentElement, objGrandParent); if (parentObject == NULL) { return NULL; } elementNodeList = parentElement->getChildNodes(); for (int i = 0; i < (int)elementNodeList->getLength(); i++) { node = elementNodeList->item(i); if(node->getNodeType()==DOMNode::ELEMENT_NODE){ element = (DOMElement*)node; elementTagName = XMLString::transcode( element->getTagName() ); if (XMLString::compareIString( elementTagName.c_str(), "importNCL") == 0) { elementObject = parseImportNCL(element, parentObject); if (elementObject != NULL) { addImportNCLToImportedDocumentBase( parentObject, elementObject); } } } } return parentObject; }