[ https://issues.apache.org/jira/browse/XERCESC-1788?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Scott Cantor reopened XERCESC-1788: ----------------------------------- > DOMParser API getting slow > -------------------------- > > Key: XERCESC-1788 > URL: https://issues.apache.org/jira/browse/XERCESC-1788 > Project: Xerces-C++ > Issue Type: Bug > Components: DOM > Affects Versions: 2.7.0 > Environment: Windows XP, VC++ 6 > Reporter: Sanish Kanjany > Priority: Major > > I have been using xerces-c2.2 for a long and now moved to xerces-c2.7. I was > using deprecated DOM_Parser(with 2.2) and now using XercesDOMParser(with 2.7) > itself. I had to write some wrappers for DOMNode, DOMDocument, DOMNodeList > etc to avoid changes in my existing code as DOM_Node, DOM_Document, > DOM_NodeList etc. I could see the parsing time is significantly reduced with > xerces-2.7. But some APIs to the parser is getting slow down. > For example, in the function given below, to get all element children of a > node, is very slow when the reference node has a large number of child nodes. > The function spends more time inside the for loop. The same function is very > fast with old version of xerces-c(2.2). > bool CMyDomParser::GetAllChildNodes(DOM_Node node, std::vector<DOM_Node>& > nodes) > { > nodes.clear(); > if(node == NULL) > return false; > DOM_NodeList nodelist = node.getChildNodes(); > if(nodelist == NULL) > return true; > bool retval = false; > int iLisSize=nodelist.getLength(); > for(int i=0; i < iLisSize; i++) > { > DOM_Node oTempNode=nodelist.item(i); > if(oTempNode.getNodeType() != DOM_Node::ELEMENT_NODE) > continue; > retval = true; > nodes.push_back(oTempNode); > } > return true; > } > What will be the base reason ? > Anyadvancement needed in my code? > Is there any change in implementation of DOMNodelist ::item(int) ? > Thanks, > Sanish -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: c-dev-unsubscr...@xerces.apache.org For additional commands, e-mail: c-dev-h...@xerces.apache.org