Author: mrglavas
Date: Wed Jun 2 03:00:30 2010
New Revision: 950348
URL: http://svn.apache.org/viewvc?rev=950348&view=rev
Log:
Adding a sample which demonstrates usage of the org.w3c.dom.ElementTraversal
API.
Added:
xerces/java/trunk/samples/dom/ElementPrinter.java (with props)
Added: xerces/java/trunk/samples/dom/ElementPrinter.java
URL:
http://svn.apache.org/viewvc/xerces/java/trunk/samples/dom/ElementPrinter.java?rev=950348&view=auto
==============================================================================
--- xerces/java/trunk/samples/dom/ElementPrinter.java (added)
+++ xerces/java/trunk/samples/dom/ElementPrinter.java Wed Jun 2 03:00:30 2010
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package dom;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.ElementTraversal;
+
+/**
+ * This sample illustrates how to use the org.w3c.dom.ElementTraversal API.
+ *
+ * @version $Id$
+ */
+public class ElementPrinter {
+
+ public static void main (String [] argv) {
+
+ if (argv.length == 0) {
+ printUsage();
+ System.exit(1);
+ }
+
+ try {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+ dbf.setExpandEntityReferences(false);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ Document doc = db.parse(argv[0]);
+
+ DOMImplementation domImpl = doc.getImplementation();
+ if (domImpl.hasFeature("ElementTraversal", "1.0")) {
+ print(doc.getDocumentElement(), 0);
+ }
+ else {
+ System.err.println("The DOM implementation does not claim
support for ElementTraversal.");
+ }
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ private static void print(Element e, int depth) {
+ do {
+ ElementTraversal et = (ElementTraversal) e;
+ for (int i = 0; i < depth; ++i) {
+ System.out.print("--");
+ }
+ System.out.print("--> [");
+ System.out.print(new QName(e.getNamespaceURI(), e.getLocalName()));
+ System.out.println("], Child Element Count = " +
et.getChildElementCount());
+ Element firstChild = et.getFirstElementChild();
+ if (firstChild != null) {
+ print(firstChild, depth + 1);
+ }
+ e = et.getNextElementSibling();
+ }
+ while (e != null);
+ }
+
+ private static void printUsage() {
+ System.err.println("usage: java dom.ElementPrinter uri");
+ }
+
+}
Propchange: xerces/java/trunk/samples/dom/ElementPrinter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: xerces/java/trunk/samples/dom/ElementPrinter.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]