Thank you all that replyed. Here is what I tried: DOMNode *findNextDSIGNode(DOMNode *n, const char * nodeName) { const XMLCh * name = getDSIGLocalName(n); if (strEquals(name, nodeName)) { if (iSignatureFound==iSignatureCount) //skip previous "Signature" nodes return n; iSignatureFound++; } DOMNode *child = n->getFirstChild(); while (child != NULL) { DOMNode *ret = findNextDSIGNode(child, nodeName); if (ret != NULL) return ret; child = child->getNextSibling(); } return child; }
DOMNode *sigNode; iSignatureCount = 0; iSignatureFound = 0;// globals while ((sigNode = findNextDSIGNode(doc, "Signature")) != NULL) { verSig(sigNode); iSignatureCount++; //find next "Signature" node } but, it seems that my app crashes in strEquals() function call. Is there someone willing to help? :) Thank you, Milan