com.ibm.commons.xml.Dump Maven / Gradle / Ivy
The newest version!
/*
* © Copyright IBM Corp. 2012
*
* Licensed 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 com.ibm.commons.xml;
import java.io.PrintStream;
import java.util.ArrayList;
import org.w3c.dom.Attr;
import org.w3c.dom.CharacterData;
import org.w3c.dom.Comment;
import org.w3c.dom.Document;
import org.w3c.dom.DocumentFragment;
import org.w3c.dom.DocumentType;
import org.w3c.dom.Element;
import org.w3c.dom.Entity;
import org.w3c.dom.EntityReference;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Notation;
import org.w3c.dom.ProcessingInstruction;
import org.w3c.dom.Text;
/**
* W3C DOM Dump.
*/
public class Dump {
public static void dump( PrintStream ps, Node node ) {
int depth = 0;
dumpNodes(ps,node,new ArrayList());
}
private static void dumpNodes(PrintStream ps, Node node, ArrayList nodes){
// Print the indentation
for( int lv=1; lv1 ) {
ps.print("+-"); //$NON-NLS-1$
}
switch(node.getNodeType()) {
case Node.DOCUMENT_NODE: {
Document v = (Document)node;
ps.print("DOCUMENT:"); // $NON-NLS-1$
} break;
case Node.DOCUMENT_FRAGMENT_NODE: {
DocumentFragment v = (DocumentFragment)node;
ps.print("DOCUMENT FRAGMENT:"); // $NON-NLS-1$
} break;
case Node.DOCUMENT_TYPE_NODE: {
DocumentType v = (DocumentType)node;
ps.print("DOCUMENT TYPE:"); // $NON-NLS-1$
} break;
case Node.ELEMENT_NODE: {
Element v = (Element)node;
ps.print("ELEMENT:"); // $NON-NLS-1$
ps.print(" name='"+v.getTagName()+"'"); // $NON-NLS-1$
} break;
case Node.ATTRIBUTE_NODE: {
Attr v = (Attr)node;
ps.print("ATTRIBUTE:"); // $NON-NLS-1$
ps.print(" name='"+v.getName()+"'"); // $NON-NLS-1$
ps.print(" value='"+v.getValue()+"'"); // $NON-NLS-1$
} break;
case Node.CDATA_SECTION_NODE: {
CharacterData v = (CharacterData)node;
ps.print("CDATA:"); // $NON-NLS-1$
ps.print(" text='"+v.getData()+"'"); // $NON-NLS-1$
} break;
case Node.TEXT_NODE: {
Text v = (Text)node;
ps.print("TEXT:"); // $NON-NLS-1$
ps.print(" text='"+v.getData()+"'"); // $NON-NLS-1$
} break;
case Node.COMMENT_NODE: {
Comment v = (Comment)node;
ps.print("COMMENT:"); // $NON-NLS-1$
ps.print(" text='"+v.getData()+"'"); // $NON-NLS-1$
} break;
case Node.ENTITY_NODE: {
Entity v = (Entity)node;
ps.print("ENTITY:"); // $NON-NLS-1$
} break;
case Node.ENTITY_REFERENCE_NODE: {
EntityReference v = (EntityReference)node;
ps.print("ENTITY REFERENCE:"); // $NON-NLS-1$
} break;
case Node.NOTATION_NODE: {
Notation v = (Notation)node;
ps.print("NOTATION:"); // $NON-NLS-1$
} break;
case Node.PROCESSING_INSTRUCTION_NODE: {
ProcessingInstruction v = (ProcessingInstruction)node;
ps.print("PROCESSING INSTRUCTION:"); // $NON-NLS-1$
} break;
}
NodeList children = node.getChildNodes();
ps.print("\n"); //$NON-NLS-1$
for(int i=0;i\r\n"); //$NON-NLS-1$
}
}
} finally {
nodes.remove( nodes.size()-1 );
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy