You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/01/21 12:12:06 UTC

svn commit: r125919 - /cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java

Author: sylvain
Date: Fri Jan 21 03:12:03 2005
New Revision: 125919

URL: http://svn.apache.org/viewcvs?view=rev&rev=125919
Log:
Fixing namespace detection using attributes
Modified:
   cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java

Modified: cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java
Url: http://svn.apache.org/viewcvs/cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java?view=diff&rev=125919&p1=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java&r1=125918&p2=cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java&r2=125919
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java	(original)
+++ cocoon/branches/BRANCH_2_1_X/src/java/org/apache/cocoon/util/jxpath/DOMFactory.java	Fri Jan 21 03:12:03 2005
@@ -18,6 +18,7 @@
 import org.apache.commons.jxpath.AbstractFactory;
 import org.apache.commons.jxpath.JXPathContext;
 import org.apache.commons.jxpath.Pointer;
+import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -27,7 +28,7 @@
  * that creates DOM elements.
  *
  * @author <a href="http://www.apache.org/~sylvain/">Sylvain Wallez</a>
- * @version $Id: DOMFactory.java,v 1.3 2004/03/17 09:29:15 cziegeler Exp $
+ * @version $Id$
  */
 
 public class DOMFactory extends AbstractFactory {
@@ -110,10 +111,10 @@
                 return element.getNamespaceURI();
             }
             
-            String namespace = ((Element)tmp).getAttribute(nsAttr);
-            if (namespace != null) {
-                //System.out.println("Found attribute '" + nsAttr + "'='" + namespace + "' on element " + tmp.getNodeName());
-                return namespace;
+            // Note: stupid DOM api returns "" when an attribute doesn't exist, so we use the Attr node.
+            Attr nsAttrNode = ((Element)tmp).getAttributeNode(nsAttr);
+            if (nsAttrNode != null) {
+                return nsAttrNode.getValue();
             }
             tmp = tmp.getParentNode();
         }