You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mo...@apache.org on 2001/11/26 15:03:09 UTC
cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/dom DOMAdapter.java DOMImpl.java MultiDOM.java
morten 01/11/26 06:03:09
Modified: java/src/org/apache/xalan/xsltc DOM.java
java/src/org/apache/xalan/xsltc/compiler Message.java
java/src/org/apache/xalan/xsltc/dom DOMAdapter.java
DOMImpl.java MultiDOM.java
Log:
Added a new method to the DOM interface for retrieving the DOM as a single
string. This method is different from the existing getStringValue() in the
way that it generates element brackets and copies PIs and comments.
PR: bugzilla 4874
Obtained from: n/a
Submitted by: morten@xml.apache.org
Reviewed by: morten@xml.apache.org
Revision Changes Path
1.9 +2 -1 xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java
Index: DOM.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/DOM.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- DOM.java 2001/11/05 15:47:34 1.8
+++ DOM.java 2001/11/26 14:03:09 1.9
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DOM.java,v 1.8 2001/11/05 15:47:34 morten Exp $
+ * @(#)$Id: DOM.java,v 1.9 2001/11/26 14:03:09 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -92,6 +92,7 @@
/** returns singleton iterator containg the document root */
public NodeIterator getIterator();
public String getStringValue();
+ public String getTreeString(); // this one includes PIs and comments...
public NodeIterator getChildren(final int node);
public NodeIterator getTypedChildren(final int type);
1.5 +2 -2 xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java
Index: Message.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/compiler/Message.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Message.java 2001/11/22 14:41:59 1.4
+++ Message.java 2001/11/26 14:03:09 1.5
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: Message.java,v 1.4 2001/11/22 14:41:59 morten Exp $
+ * @(#)$Id: Message.java,v 1.5 2001/11/26 14:03:09 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -98,7 +98,7 @@
compileResultTree(classGen, methodGen);
// Convert the
final int toStr = cpg.addInterfaceMethodref(DOM_INTF,
- "getStringValue",
+ "getTreeString",
"()"+STRING_SIG);
il.append(new INVOKEINTERFACE(toStr, 1));
1.11 +5 -1 xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java
Index: DOMAdapter.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMAdapter.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- DOMAdapter.java 2001/11/05 15:47:34 1.10
+++ DOMAdapter.java 2001/11/26 14:03:09 1.11
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DOMAdapter.java,v 1.10 2001/11/05 15:47:34 morten Exp $
+ * @(#)$Id: DOMAdapter.java,v 1.11 2001/11/26 14:03:09 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -105,6 +105,10 @@
public String getStringValue() {
return _domImpl.getStringValue();
+ }
+
+ public String getTreeString() {
+ return _domImpl.getTreeString();
}
public NodeIterator getChildren(final int node) {
1.61 +61 -5 xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java
Index: DOMImpl.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/DOMImpl.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- DOMImpl.java 2001/11/22 13:42:26 1.60
+++ DOMImpl.java 2001/11/26 14:03:09 1.61
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: DOMImpl.java,v 1.60 2001/11/22 13:42:26 morten Exp $
+ * @(#)$Id: DOMImpl.java,v 1.61 2001/11/26 14:03:09 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -2746,24 +2746,80 @@
child != NULL;
child = _nextSibling[child]) {
switch (_type[child]) {
+ case TEXT:
+ buffer.append(_text,
+ _offsetOrChild[child],
+ _lengthOrAttr[child]);
+ break;
+ case PROCESSING_INSTRUCTION:
case COMMENT:
+ // This method should not return anything for PIs and comments
break;
+ default:
+ stringValueAux(buffer, child);
+ }
+ }
+ return buffer;
+ }
+
+ public String getTreeString() {
+ StringBuffer buf = new StringBuffer();
+ buf = getElementString(buf, ROOTNODE);
+ return buf.toString();
+ }
+
+ /**
+ * Helper to getTreeString() above
+ */
+ private StringBuffer getElementString(StringBuffer buffer, int element) {
+ String name = null;
+
+ if (isElement(element)) {
+ if ((name = getNodeName(element)) != null) {
+ buffer.append('<');
+ buffer.append(name);
+ if (_offsetOrChild[element] == NULL) {
+ buffer.append("/>");
+ return buffer;
+ }
+ buffer.append('>');
+ }
+ }
+
+ for (int child = _offsetOrChild[element];
+ child != NULL;
+ child = _nextSibling[child]) {
+ switch (_type[child]) {
+ case COMMENT:
+ buffer.append("<!--");
+ buffer.append(_text,
+ _offsetOrChild[child],
+ _lengthOrAttr[child]);
+ buffer.append("-->");
+ break;
case TEXT:
buffer.append(_text,
_offsetOrChild[child],
_lengthOrAttr[child]);
break;
case PROCESSING_INSTRUCTION:
- /* This method should not return anything for PIs
+ buffer.append("<?");
buffer.append(_text,
_offsetOrChild[child],
_lengthOrAttr[child]);
- */
+ buffer.append("?>");
break;
default:
- stringValueAux(buffer, child);
+ getElementString(buffer, child);
}
}
+
+ if (isElement(element) && name != null) {
+ buffer.append("</");
+ buffer.append(name);
+ buffer.append(">");
+ }
+
return buffer;
}
@@ -3319,7 +3375,7 @@
/**
* SAX2: Receive notification of the end of an element.
*/
- public void endElement(String namespaceURI, String localName,
+ public void endElement(String uri, String localName,
String qname) {
makeTextNode(false);
1.14 +5 -1 xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java
Index: MultiDOM.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/dom/MultiDOM.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- MultiDOM.java 2001/11/05 15:47:35 1.13
+++ MultiDOM.java 2001/11/26 14:03:09 1.14
@@ -1,5 +1,5 @@
/*
- * @(#)$Id: MultiDOM.java,v 1.13 2001/11/05 15:47:35 morten Exp $
+ * @(#)$Id: MultiDOM.java,v 1.14 2001/11/26 14:03:09 morten Exp $
*
* The Apache Software License, Version 1.1
*
@@ -289,6 +289,10 @@
public String getStringValue() {
return _adapters[0].getStringValue();
+ }
+
+ public String getTreeString() {
+ return _adapters[0].getTreeString();
}
public NodeIterator getChildren(final int node) {
---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org