Example usage for org.w3c.dom.traversal DocumentTraversal createTreeWalker

List of usage examples for org.w3c.dom.traversal DocumentTraversal createTreeWalker

Introduction

In this page you can find the example usage for org.w3c.dom.traversal DocumentTraversal createTreeWalker.

Prototype

public TreeWalker createTreeWalker(Node root, int whatToShow, NodeFilter filter,
        boolean entityReferenceExpansion) throws DOMException;

Source Link

Document

Create a new TreeWalker over the subtree rooted at the specified node.

Usage

From source file:Main.java

public static void main(String[] argv) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder loader = factory.newDocumentBuilder();
    Document document = loader.parse("sample.xml");

    DocumentTraversal traversal = (DocumentTraversal) document;

    TreeWalker walker = traversal.createTreeWalker(document.getDocumentElement(), NodeFilter.SHOW_ELEMENT, null,
            true);//from  w w  w .j  a  va2  s  .co  m

    traverseLevel(walker, "");
}

From source file:Main.java

public static void main(String[] argv) throws Exception {
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    Document document = factory.newDocumentBuilder().parse(new InputSource(new StringReader(getXMLData())));

    DocumentTraversal traversal = (DocumentTraversal) document;

    TreeWalker walker = traversal.createTreeWalker(document.getDocumentElement(), NodeFilter.SHOW_ELEMENT, null,
            true);/* ww w .  j a v  a2 s.  c  o  m*/

    traverseLevel(walker, "");
}

From source file:DemoTreeWalker.java

public static void main(String args[]) throws SAXException, IOException {

    DOMParser parser = new DOMParser();
    parser.parse("games.xml");

    Document doc = parser.getDocument();

    DocumentTraversal docTraversal = (DocumentTraversal) doc;

    TreeWalker iter = docTraversal.createTreeWalker(doc.getDocumentElement(), NodeFilter.SHOW_ALL, null, false);
    Node n = null;// ww w  . j  a  v a2  s .  co m
    while ((n = iter.nextNode()) != null) {
        System.out.println("Node name: " + n.getNodeName());
        System.out.println("Node value: " + n.getNodeValue());
    }

}

From source file:DOMTreeWalkerTreeModel.java

/**
 * This main() method demonstrates the use of this class, the use of the
 * Xerces DOM parser, and the creation of a DOM Level 2 TreeWalker object.
 *//* ww w. j  av a2s  . com*/
public static void main(String[] args) throws IOException, SAXException {
    // Obtain an instance of a Xerces parser to build a DOM tree.
    // Note that we are not using the JAXP API here, so this
    // code uses Apache Xerces APIs that are not standards
    DOMParser parser = new org.apache.xerces.parsers.DOMParser();

    // Get a java.io.Reader for the input XML file and
    // wrap the input file in a SAX input source
    Reader in = new BufferedReader(new FileReader(args[0]));
    InputSource input = new org.xml.sax.InputSource(in);

    // Tell the Xerces parser to parse the input source
    parser.parse(input);

    // Ask the parser to give us our DOM Document. Once we've got the DOM
    // tree, we don't have to use the Apache Xerces APIs any more; from
    // here on, we use the standard DOM APIs
    Document document = parser.getDocument();

    // If we're using a DOM Level 2 implementation, then our Document
    // object ought to implement DocumentTraversal
    DocumentTraversal traversal = (DocumentTraversal) document;

    // For this demonstration, we create a NodeFilter that filters out
    // Text nodes containing only space; these just clutter up the tree
    NodeFilter filter = new NodeFilter() {
        public short acceptNode(Node n) {
            if (n.getNodeType() == Node.TEXT_NODE) {
                // Use trim() to strip off leading and trailing space.
                // If nothing is left, then reject the node
                if (((Text) n).getData().trim().length() == 0)
                    return NodeFilter.FILTER_REJECT;
            }
            return NodeFilter.FILTER_ACCEPT;
        }
    };

    // This set of flags says to "show" all node types except comments
    int whatToShow = NodeFilter.SHOW_ALL & ~NodeFilter.SHOW_COMMENT;

    // Create a TreeWalker using the filter and the flags
    TreeWalker walker = traversal.createTreeWalker(document, whatToShow, filter, false);

    // Instantiate a TreeModel and a JTree to display it
    JTree tree = new JTree(new DOMTreeWalkerTreeModel(walker));

    // Create a frame and a scrollpane to display the tree, and pop them up
    JFrame frame = new JFrame("DOMTreeWalkerTreeModel Demo");
    frame.getContentPane().add(new JScrollPane(tree));
    frame.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
            System.exit(0);
        }
    });

    frame.setSize(500, 250);
    frame.setVisible(true);
}

From source file:Main.java

public static TreeWalker createTreeWalker(Node node, int whatToShow, NodeFilter nodeFilter,
        boolean entityReferenceExpansion) {
    final DocumentTraversal documentTraversal;
    if (node instanceof Document) {
        documentTraversal = (DocumentTraversal) node;
    } else {/*from w w w  .  j a  v a  2s. c om*/
        documentTraversal = (DocumentTraversal) node.getOwnerDocument();
    }
    return documentTraversal.createTreeWalker(node, whatToShow, nodeFilter, entityReferenceExpansion);
}

From source file:DOMTreeWalkerTreeModel.java

/**
 * Create a TreeModel for a TreeWalker that returns all nodes in the
 * specified document// w  w  w  .  j a va2  s. c om
 */
public DOMTreeWalkerTreeModel(Document document) {
    DocumentTraversal dt = (DocumentTraversal) document;
    walker = dt.createTreeWalker(document, NodeFilter.SHOW_ALL, null, false);
}

From source file:DOMTreeWalkerTreeModel.java

/**
 * Create a TreeModel for a TreeWalker that returns the specified element
 * and all of its descendant nodes./* w w  w .  j  a  v a2s. c o  m*/
 */
public DOMTreeWalkerTreeModel(Element element) {
    DocumentTraversal dt = (DocumentTraversal) element.getOwnerDocument();
    walker = dt.createTreeWalker(element, NodeFilter.SHOW_ALL, null, false);
}

From source file:com.twinsoft.convertigo.beans.core.Sequence.java

private static void buildOutputDom(Element root, OutputFilter outputFilter) {
    try {/*from w  w w. j  a  v a 2 s. co m*/
        DocumentTraversal traversal = (DocumentTraversal) root.getOwnerDocument();
        TreeWalker walker = traversal.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, outputFilter, false);
        traverseLevel(walker, null, "");
        outputFilter.doOutPut();
    } finally {
        if (outputFilter != null) {
            outputFilter.map.clear();
        }
    }
}

From source file:org.jboss.shrinkwrap.descriptor.metadata.MetadataParser.java

/**
 * Parses one or more XSD schemas or DTD and produces java classes based on the parsing results.
 *
 * @param path//  ww  w  .  j  av  a2 s.  c om
 *            specifies where to create the interface, implementation and test case java classes.
 * @param confList
 *            list <code>MetadataParserConfiguration</code> objects.
 * @param verbose
 *            if true, additional parsing information are printed out, otherwise not.
 * @throws Exception
 */
@SuppressWarnings("unchecked")
public void parse(final MetadataParserPath path, final List<?> confList, final List<?> javadocTags,
        final boolean verbose) throws Exception {
    checkArguments(path, confList);

    pathToMetadata = createTempFile(verbose);

    if (log.isLoggable(Level.FINE)) {
        log.fine("Path to temporary metadata file: " + pathToMetadata);
    }

    for (int i = 0; i < confList.size(); i++) {
        final MetadataParserConfiguration metadataConf = (MetadataParserConfiguration) confList.get(i);

        metadata.setCurrentNamespace(metadataConf.getNameSpace());
        metadata.setCurrentSchmema(metadataConf.getPathToXsd());
        metadata.setCurrentPackageApi(metadataConf.getPackageApi());
        metadata.setCurrentPackageImpl(metadataConf.getPackageImpl());

        final MetadataDescriptor metadataDescriptor = new MetadataDescriptor(metadataConf.getDescriptorName());
        metadataDescriptor.setRootElementName(metadataConf.getElementName());
        metadataDescriptor.setRootElementType(metadataConf.getElementType());
        metadataDescriptor.setSchemaName(metadataConf.getPathToXsd());
        metadataDescriptor.setPackageApi(metadataConf.getPackageApi());
        metadataDescriptor.setPackageImpl(metadataConf.getPackageImpl());
        metadataDescriptor.setNamespace(metadataConf.getNameSpace());
        metadataDescriptor.setNamespaces(metadataConf.getNamespaces());
        metadataDescriptor.setGenerateClasses(metadataConf.generateClasses);
        metadataDescriptor.setPathToPackageInfoApi(metadataConf.getPathToPackageInfoApi());
        metadataDescriptor.setPathToPackageInfoImpl(metadataConf.getPathToPackageInfoImpl());
        metadataDescriptor.setCommon(metadataConf.getCommon());
        metadataDescriptor.setCommonRef(metadataConf.getCommonRef());
        metadataDescriptor.setGenerateCommonClasses(metadataConf.generateCommonClasses);
        metadataDescriptor.setCommonImports(metadataConf.getCommonImports());

        metadata.getMetadataDescriptorList().add(metadataDescriptor);

        if (log.isLoggable(Level.FINE)) {
            log.fine(metadataConf.getPathToXsd());
        }

        if (metadataConf.getPathToXsd().endsWith(".dtd")) {
            final InputSource in = new InputSource(new FileReader(metadataConf.getPathToXsd()));
            final MetadataDtdEventListener dtdEventListener = new MetadataDtdEventListener(metadata, verbose);
            final DTDParser parser = new DTDParser();
            parser.setDtdHandler(dtdEventListener);
            parser.parse(in);
        } else {
            final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            final DocumentBuilder loader = factory.newDocumentBuilder();
            final Document document = loader.parse(metadataConf.getPathToXsd());

            if (log.isLoggable(Level.FINE)) {
                log.fine(document.getDocumentURI());
            }

            final DocumentTraversal traversal = (DocumentTraversal) document;
            final TreeWalker walker = traversal.createTreeWalker(document.getDocumentElement(),
                    NodeFilter.SHOW_ELEMENT, null, true);

            final StringBuilder sb = verbose ? new StringBuilder() : null;

            filterChain.traverseAndFilter(walker, "", metadata, sb);

            if (sb != null) {
                log.info(sb.toString());
            }
        }
    }

    /**
     * Analyze the data types defined in the elements. If an element data types points to a type defined in the data
     * type section, and the data type is simple type like xsd:string then change the element data type directly
     * here.
     */
    metadata.preResolveDataTypes();

    if (pathToMetadata != null) {
        new DomWriter().write(metadata, pathToMetadata, (List<MetadataJavaDoc>) javadocTags);
    }

    if (verbose) {
        new MetadataUtil().log(metadata);
    }

    if (path.getPathToApi() != null && path.getPathToImpl() != null) {
        generateCode(path, verbose);
        PackageInfo.copyPackageInfo(path, metadata, verbose);
    }
}