santiagopg 02/04/05 14:44:48
Modified: java/src/org/apache/xalan/xsltc/trax Tag:
jaxp-ri-1_2_0-fcs-branch SAX2DOM.java
TransformerImpl.java
Log:
Fixed problem when a DOMResult is created with a root node.
Revision Changes Path
No revision
No revision
1.4.8.2 +15 -15
xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java
Index: SAX2DOM.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java,v
retrieving revision 1.4.8.1
retrieving revision 1.4.8.2
diff -u -r1.4.8.1 -r1.4.8.2
--- SAX2DOM.java 3 Apr 2002 19:26:50 -0000 1.4.8.1
+++ SAX2DOM.java 5 Apr 2002 22:44:47 -0000 1.4.8.2
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: SAX2DOM.java,v 1.4.8.1 2002/04/03 19:26:50 tmiller Exp $
+ * @(#)$Id: SAX2DOM.java,v 1.4.8.2 2002/04/05 22:44:47 santiagopg Exp $
*
* The Apache Software License, Version 1.1
*
@@ -82,35 +82,35 @@
class SAX2DOM implements ContentHandler, Constants {
- private Stack _nodeStk = null;
- private Document _document = null;
- private DocumentBuilder _builder = null;
-
+ private Document _root = null;
+ private Stack _nodeStk = new Stack();
private Vector _namespaceDecls = null;
public SAX2DOM() throws ParserConfigurationException {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- _builder = factory.newDocumentBuilder();
- _nodeStk = new Stack();
+ final DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
+ _root = factory.newDocumentBuilder().newDocument();
+ }
+
+ public SAX2DOM(Node root) throws ParserConfigurationException {
+ _root = (Document) root; // TODO: add support for frags and elems
}
public Node getDOM() {
- return _document;
+ return _root;
}
public void characters(char[] ch, int start, int length) {
final Node last = (Node)_nodeStk.peek();
- final String text = new String(ch, start, length);
// No text nodes can be children of root (DOM006 exception)
- if (last != _document) {
- last.appendChild(_document.createTextNode(text));
+ if (last != _root) {
+ final String text = new String(ch, start, length);
+ last.appendChild(_root.createTextNode(text));
}
}
public void startDocument() {
- _document = _builder.newDocument();
- _nodeStk.push(_document);
+ _nodeStk.push(_root);
}
public void endDocument() {
@@ -119,7 +119,7 @@
public void startElement(String namespace, String localName, String
qName,
Attributes attrs)
{
- final Element tmp = (Element)_document.createElementNS(namespace,
qName);
+ final Element tmp = (Element)_root.createElementNS(namespace, qName);
// Add namespace declarations first
if (_namespaceDecls != null) {
1.32.8.2 +2 -2
xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
Index: TransformerImpl.java
===================================================================
RCS file:
/home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
retrieving revision 1.32.8.1
retrieving revision 1.32.8.2
diff -u -r1.32.8.1 -r1.32.8.2
--- TransformerImpl.java 3 Apr 2002 19:26:50 -0000 1.32.8.1
+++ TransformerImpl.java 5 Apr 2002 22:44:47 -0000 1.32.8.2
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: TransformerImpl.java,v 1.32.8.1 2002/04/03 19:26:50 tmiller Exp $
+ * @(#)$Id: TransformerImpl.java,v 1.32.8.2 2002/04/05 22:44:47 santiagopg
Exp $
*
* The Apache Software License, Version 1.1
*
@@ -211,7 +211,7 @@
if (handler != null) return handler;
}
else if (result instanceof DOMResult) {
- return (new SAX2DOM());
+ return new SAX2DOM(((DOMResult) result).getNode());
}
else if (result instanceof StreamResult) {
// Get StreamResult
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]