return NULL;\r
}\r
\r
-DOMElement* XMLHelper::getFirstChildElement(const DOMNode* n)\r
+DOMElement* XMLHelper::getFirstChildElement(const DOMNode* n, const XMLCh* localName)\r
{\r
DOMNode* child = n->getFirstChild();\r
while (child && child->getNodeType() != DOMNode::ELEMENT_NODE)\r
child = child->getNextSibling();\r
- if (child)\r
- return static_cast<DOMElement*>(child);\r
- return NULL;\r
+ if (child && localName) {\r
+ if (!XMLString::equals(localName,child->getLocalName()))\r
+ return getNextSiblingElement(child, localName);\r
+ }\r
+ return static_cast<DOMElement*>(child);\r
} \r
\r
-DOMElement* XMLHelper::getLastChildElement(const DOMNode* n)\r
+DOMElement* XMLHelper::getLastChildElement(const DOMNode* n, const XMLCh* localName)\r
{\r
DOMNode* child = n->getLastChild();\r
while (child && child->getNodeType() != DOMNode::ELEMENT_NODE)\r
child = child->getPreviousSibling();\r
- if (child)\r
- return static_cast<DOMElement*>(child);\r
- return NULL;\r
+ if (child && localName) {\r
+ if (!XMLString::equals(localName,child->getLocalName()))\r
+ return getPreviousSiblingElement(child, localName);\r
+ }\r
+ return static_cast<DOMElement*>(child);\r
} \r
\r
DOMElement* XMLHelper::getFirstChildElement(const DOMNode* n, const XMLCh* ns, const XMLCh* localName)\r
{\r
- DOMElement* e = getFirstChildElement(n);\r
- while (e && !isNodeNamed(e, ns, localName))\r
- e = getNextSiblingElement(e);\r
+ DOMElement* e = getFirstChildElement(n, localName);\r
+ while (e && !XMLString::equals(e->getNamespaceURI(),ns))\r
+ e = getNextSiblingElement(e, localName);\r
return e;\r
}\r
\r
DOMElement* XMLHelper::getLastChildElement(const DOMNode* n, const XMLCh* ns, const XMLCh* localName)\r
{\r
- DOMElement* e = getLastChildElement(n);\r
- while (e && !isNodeNamed(e, ns, localName))\r
- e = getPreviousSiblingElement(e);\r
+ DOMElement* e = getLastChildElement(n, localName);\r
+ while (e && !XMLString::equals(e->getNamespaceURI(),ns))\r
+ e = getPreviousSiblingElement(e, localName);\r
return e;\r
}\r
\r
-DOMElement* XMLHelper::getNextSiblingElement(const DOMNode* n)\r
+DOMElement* XMLHelper::getNextSiblingElement(const DOMNode* n, const XMLCh* localName)\r
{\r
DOMNode* sib = n->getNextSibling();\r
while (sib && sib->getNodeType() != DOMNode::ELEMENT_NODE)\r
sib = sib->getNextSibling();\r
- if (sib)\r
- return static_cast<DOMElement*>(sib);\r
- return NULL;\r
+ if (sib && localName) {\r
+ if (!XMLString::equals(localName,sib->getLocalName()))\r
+ return getNextSiblingElement(sib, localName);\r
+ } \r
+ return static_cast<DOMElement*>(sib);\r
}\r
\r
-DOMElement* XMLHelper::getPreviousSiblingElement(const DOMNode* n)\r
+DOMElement* XMLHelper::getPreviousSiblingElement(const DOMNode* n, const XMLCh* localName)\r
{\r
DOMNode* sib = n->getPreviousSibling();\r
while (sib && sib->getNodeType() != DOMNode::ELEMENT_NODE)\r
sib = sib->getPreviousSibling();\r
- if (sib)\r
- return static_cast<DOMElement*>(sib);\r
- return NULL;\r
+ if (sib && localName) {\r
+ if (!XMLString::equals(localName,sib->getLocalName()))\r
+ return getPreviousSiblingElement(sib, localName);\r
+ } \r
+ return static_cast<DOMElement*>(sib);\r
}\r
\r
DOMElement* XMLHelper::getNextSiblingElement(const DOMNode* n, const XMLCh* ns, const XMLCh* localName)\r
{\r
- DOMElement* e = getNextSiblingElement(n);\r
- while (e && !isNodeNamed(e, ns, localName))\r
- e = getNextSiblingElement(e);\r
+ DOMElement* e = getNextSiblingElement(n, localName);\r
+ while (e && !XMLString::equals(e->getNamespaceURI(),ns))\r
+ e = getNextSiblingElement(e, localName);\r
return e;\r
}\r
\r
DOMElement* XMLHelper::getPreviousSiblingElement(const DOMNode* n, const XMLCh* ns, const XMLCh* localName)\r
{\r
- DOMElement* e = getPreviousSiblingElement(n);\r
- while (e && !isNodeNamed(e, ns, localName))\r
- e = getPreviousSiblingElement(e);\r
+ DOMElement* e = getPreviousSiblingElement(n, localName);\r
+ while (e && !XMLString::equals(e->getNamespaceURI(),ns))\r
+ e = getPreviousSiblingElement(e, localName);\r
return e;\r
}\r
\r