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

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

Introduction

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

Prototype

public NodeIterator createNodeIterator(Node root, int whatToShow, NodeFilter filter,
        boolean entityReferenceExpansion) throws DOMException;

Source Link

Document

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

Usage

From source file:com.cloud.hypervisor.vmware.mo.HypervisorHostHelper.java

public static String removeOVFNetwork(final String ovfString) {
    if (ovfString == null || ovfString.isEmpty()) {
        return ovfString;
    }/*from   w  w w.j  av  a 2 s.c o  m*/
    try {
        final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        final Document doc = factory.newDocumentBuilder().parse(new ByteArrayInputStream(ovfString.getBytes()));
        final DocumentTraversal traversal = (DocumentTraversal) doc;
        final NodeIterator iterator = traversal.createNodeIterator(doc.getDocumentElement(),
                NodeFilter.SHOW_ELEMENT, null, true);
        for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
            final Element e = (Element) n;
            if ("NetworkSection".equals(e.getTagName())) {
                if (e.getParentNode() != null) {
                    e.getParentNode().removeChild(e);
                }
            } else if ("rasd:Connection".equals(e.getTagName())) {
                if (e.getParentNode() != null && e.getParentNode().getParentNode() != null) {
                    e.getParentNode().getParentNode().removeChild(e.getParentNode());
                }
            }
        }
        final DOMSource domSource = new DOMSource(doc);
        final StringWriter writer = new StringWriter();
        final StreamResult result = new StreamResult(writer);
        final TransformerFactory tf = TransformerFactory.newInstance();
        final Transformer transformer = tf.newTransformer();
        transformer.transform(domSource, result);
        return writer.toString();
    } catch (SAXException | IOException | ParserConfigurationException | TransformerException e) {
        s_logger.warn("Unexpected exception caught while removing network elements from OVF:", e);
    }
    return ovfString;
}

From source file:org.etudes.mneme.impl.ImportQti2ServiceImpl.java

/**
 * read each node and write it as is.//  w w w  . j a  v a  2 s  .co m
 * 
 * @param doc
 * @param itemBodyElement
 * @return
 */
private String normalizeElementBody(Document doc, Element itemBodyElement) {
    if (itemBodyElement == null)
        return "";

    try {
        doc.getDocumentElement().normalize();

        DocumentTraversal traversal = (DocumentTraversal) doc;
        NodeIterator iterator = traversal.createNodeIterator(itemBodyElement, NodeFilter.SHOW_ELEMENT, null,
                true);
        for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
            String tagname = ((Element) n).getTagName();

            if (tagname.equalsIgnoreCase(itemBodyElement.getTagName())) {
                StringBuilder textContent = new StringBuilder();

                String nodeContent = getAllLevelsTextContent(n, textContent, false, null, null, null);
                return nodeContent;
            }
        }
    } catch (Exception e) {
        return itemBodyElement.getTextContent();
    }
    return itemBodyElement.getTextContent();
}

From source file:org.etudes.mneme.impl.ImportQti2ServiceImpl.java

/**
 * For unsupported question , get the whole text along with options.
 * @param doc/*  w w  w  .j a v a2s  . c  o  m*/
 * @param itemBodyElement
 * @param wholeText
 * @param unzipLocation
 * @param context
 * @param embedMedia
 * @return
 */
private String normalizeItemBodyElement(Document doc, Element itemBodyElement, boolean wholeText,
        String unzipLocation, String context, List<String> embedMedia) {
    if (itemBodyElement == null)
        return "";

    try {
        doc.getDocumentElement().normalize();

        DocumentTraversal traversal = (DocumentTraversal) doc;
        NodeIterator iterator = traversal.createNodeIterator(itemBodyElement, NodeFilter.SHOW_ELEMENT, null,
                true);
        for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
            String tagname = ((Element) n).getTagName();

            if (tagname.equalsIgnoreCase(itemBodyElement.getTagName())) {
                StringBuilder textContent = new StringBuilder();

                String nodeContent = getAllLevelsTextContent(n, textContent, wholeText, unzipLocation, context,
                        embedMedia);
                return nodeContent;
            }
        }
    } catch (Exception e) {
        return itemBodyElement.getTextContent();
    }
    return itemBodyElement.getTextContent();
}

From source file:org.springframework.batch.core.jsr.configuration.xml.JsrBeanDefinitionDocumentReader.java

private void transformDocument(Element root) {
    DocumentTraversal traversal = (DocumentTraversal) root.getOwnerDocument();
    NodeIterator iterator = traversal.createNodeIterator(root, NodeFilter.SHOW_ELEMENT, null, true);

    BeanDefinitionRegistry registry = getBeanDefinitionRegistry();
    Map<String, Integer> referenceCountMap = new HashMap<String, Integer>();

    for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
        NamedNodeMap map = n.getAttributes();

        if (map.getLength() > 0) {
            for (int i = 0; i < map.getLength(); i++) {
                Node node = map.item(i);

                String nodeName = node.getNodeName();
                String nodeValue = node.getNodeValue();
                String resolvedValue = resolveValue(nodeValue);
                String newNodeValue = resolvedValue;

                if ("ref".equals(nodeName)) {
                    if (!referenceCountMap.containsKey(resolvedValue)) {
                        referenceCountMap.put(resolvedValue, 0);
                    }/*from ww  w.  jav  a 2s.  c  om*/

                    boolean isClass = isClass(resolvedValue);
                    Integer referenceCount = referenceCountMap.get(resolvedValue);

                    // possibly fully qualified class name in ref tag in the JSL or pointer to bean/artifact ref.
                    if (isClass && !registry.containsBeanDefinition(resolvedValue)) {
                        AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder
                                .genericBeanDefinition(resolvedValue).getBeanDefinition();
                        beanDefinition.setScope("step");
                        registry.registerBeanDefinition(resolvedValue, beanDefinition);

                        newNodeValue = resolvedValue;
                    } else {
                        if (registry.containsBeanDefinition(resolvedValue)) {
                            referenceCount++;
                            referenceCountMap.put(resolvedValue, referenceCount);

                            newNodeValue = resolvedValue + referenceCount;

                            BeanDefinition beanDefinition = registry.getBeanDefinition(resolvedValue);
                            registry.registerBeanDefinition(newNodeValue, beanDefinition);
                        }
                    }
                }

                if (!nodeValue.equals(newNodeValue)) {
                    node.setNodeValue(newNodeValue);
                }
            }
        } else {
            String nodeValue = n.getTextContent();
            String resolvedValue = resolveValue(nodeValue);

            if (!nodeValue.equals(resolvedValue)) {
                n.setTextContent(resolvedValue);
            }
        }
    }
}