From e8e57c1c2eb7339030e78f03b20eb5e408d67854 Mon Sep 17 00:00:00 2001 From: "kvisco%ziplink.net" Date: Mon, 22 Jan 2001 09:32:40 +0000 Subject: [PATCH] Not part of regular build. Added getNameSpace method. git-svn-id: svn://10.0.0.236/trunk@85268 18797224-902f-48f8-a5cc-f745e15eee43 --- .../transformiix/source/xml/XMLDOMUtils.cpp | 39 ++++++++++++++++++- .../transformiix/source/xml/XMLDOMUtils.h | 7 +++- 2 files changed, 43 insertions(+), 3 deletions(-) diff --git a/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.cpp b/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.cpp index af526c491bb..bc935245eea 100644 --- a/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.cpp +++ b/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.cpp @@ -21,13 +21,13 @@ * Keith Visco * -- original author. * - * $Id: XMLDOMUtils.cpp,v 1.8 2001-01-12 20:06:16 axel%pike.org Exp $ + * $Id: XMLDOMUtils.cpp,v 1.9 2001-01-22 09:32:40 kvisco%ziplink.net Exp $ */ /** * XMLDOMUtils * @author Keith Visco - * @version $Revision: 1.8 $ $Date: 2001-01-12 20:06:16 $ + * @version $Revision: 1.9 $ $Date: 2001-01-22 09:32:40 $ **/ #include "XMLDOMUtils.h" @@ -176,3 +176,38 @@ void XMLDOMUtils::getNodeValue(Node* node, String* target) { } //-- getNodeValue +/** + * Resolves the namespace for the given prefix. The namespace is put + * into the dest argument. + * + * @return true if the namespace was found +**/ +MBool XMLDOMUtils::getNameSpace + (const String& prefix, Element* element, String& dest) +{ + String attName("xmlns"); + if (prefix.length() > 0) { + attName.append(':'); + attName.append(prefix); + } + + dest.clear(); + + Element* elem = element; + while( elem ) { + NamedNodeMap* atts = elem->getAttributes(); + if ( atts ) { + Node* attr = atts->getNamedItem(attName); + if (attr) { + dest.append(attr->getNodeValue()); + return MB_TRUE; + } + } + Node* node = elem->getParentNode(); + if ((!node) || (node->getNodeType() != Node::ELEMENT_NODE)) break; + elem = (Element*) node; + } + return MB_FALSE; + +} //-- getNameSpace + diff --git a/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.h b/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.h index 922683650a3..1b2d2e48c38 100644 --- a/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.h +++ b/mozilla/extensions/transformiix/source/xml/XMLDOMUtils.h @@ -21,12 +21,13 @@ * Keith Visco * -- original author. * - * $Id: XMLDOMUtils.h,v 1.7 2000-08-27 05:58:57 kvisco%ziplink.net Exp $ + * $Id: XMLDOMUtils.h,v 1.8 2001-01-22 09:32:40 kvisco%ziplink.net Exp $ */ #include "dom.h" #include "NamespaceResolver.h" +#include "baseutils.h" #ifndef TRANSFRMX_XMLDOMUTILS_H #define TRANSFRMX_XMLDOMUTILS_H @@ -50,6 +51,10 @@ public: **/ static void getNodeValue(Node* node, String* target); + /** + * Returns the Namespace associated with the given prefix + **/ + static MBool getNameSpace(const String& prefix, Element* element, String& dest); }; //-- XMLDOMUtils