Example usage for org.w3c.dom Element getParentNode

List of usage examples for org.w3c.dom Element getParentNode

Introduction

In this page you can find the example usage for org.w3c.dom Element getParentNode.

Prototype

public Node getParentNode();

Source Link

Document

The parent of this node.

Usage

From source file:org.openestate.io.openimmo.converters.OpenImmo_1_2_6.java

/**
 * Remove unsupported children from all <preise> elements.
 * <p>//w w  w .j  a v  a 2s. co  m
 * OpenImmo 1.2.5 does not support the following children for
 * &lt;preise&gt; elements: &lt;kaufpreisnetto&gt;, &lt;kaufpreisbrutto&gt;,
 * &lt;hauptmietzinsnetto&gt;, &lt;pauschalmiete&gt;,
 * &lt;betriebskostennetto&gt;, &lt;evbnetto&gt;, &lt;gesamtmietenetto&gt;,
 * &lt;gesamtmietebrutto&gt;, &lt;gesamtbelastungnetto&gt;,
 * &lt;gesamtbelastungbrutto&gt;, &lt;gesamtkostenprom2von&gt;,
 * &lt;heizkostennetto&gt;, &lt;monatlichekostennetto&gt;,
 * &lt;monatlichekostenbrutto&gt;, &lt;nebenkostenprom2von&gt;,
 * &lt;ruecklagenetto&gt;, &lt;sonstigekostennetto&gt;,
 * &lt;sonstigemietenetto&gt;, &lt;summemietenetto&gt;,
 * &lt;nettomieteprom2von&gt;, &lt;provisionnetto&gt;,
 * &lt;provisionbrutto&gt;, &lt;richtpreisprom2&gt;
 * <p>
 * These elements are removed by this function.
 *
 * @param doc OpenImmo document in version 1.2.6
 * @throws JaxenException
 */
protected void removePreiseChildElements(Document doc) throws JaxenException {
    List nodes = XmlUtils
            .newXPath("/io:openimmo/io:anbieter/io:immobilie/io:preise/io:kaufpreisnetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:kaufpreisbrutto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:hauptmietzinsnetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:pauschalmiete | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:betriebskostennetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:evbnetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtmietenetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtmietebrutto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtbelastungnetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtbelastungbrutto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtkostenprom2von | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:heizkostennetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:monatlichekostennetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:monatlichekostenbrutto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:nebenkostenprom2von | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:ruecklagenetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:sonstigekostennetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:sonstigemietenetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:summemietenetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:nettomieteprom2von | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:provisionnetto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:provisionbrutto | "
                    + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:richtpreisprom2", doc)
            .selectNodes(doc);
    for (Object item : nodes) {
        Element node = (Element) item;
        Element parentNode = (Element) node.getParentNode();
        parentNode.removeChild(node);
    }
}

From source file:org.openestate.io.openimmo.converters.OpenImmo_1_2_6.java

/**
 * Remove &lt;zwangsversteigerung&gt; elements.
 * <p>//w w w .  ja  v  a 2 s. c o  m
 * OpenImmo 1.2.5 does not support &lt;zwangsversteigerung&gt; elements.
 *
 * @param doc OpenImmo document in version 1.2.6
 * @throws JaxenException
 */
protected void removeZwangsversteigerungElements(Document doc) throws JaxenException {
    List nodes = XmlUtils
            .newXPath("/io:openimmo/io:anbieter/io:immobilie/io:versteigerung/io:zwangsversteigerung", doc)
            .selectNodes(doc);
    for (Object item : nodes) {
        Element node = (Element) item;
        Element parentNode = (Element) node.getParentNode();
        parentNode.removeChild(node);
    }
}

From source file:org.openestate.io.openimmo.converters.OpenImmo_1_2_7.java

/**
 * Downgrade &lt;energiepass&gt; elements to OpenImmo 1.2.6.
 * <p>/*  w  w w. j a v a 2s  . c  o m*/
 * The child elements &lt;stromwert&gt;, &lt;waermewert&gt;,
 * &lt;wertklasse&gt;, &lt;baujahr&gt;, &lt;ausstelldatum&gt;,
 * &lt;jahrgang&gt;, &lt;gebaeudeart&gt; are copied into separate
 * &lt;user_defined_simplefield&gt; elements as it was
 * <a href="http://www.openimmo.de/go.php/p/44/cm_enev2014.htm">suggested by OpenImmo e.V.</a>.
 * <p>
 * The child elements &lt;primaerenergietraeger&gt;, &lt;epasstext&gt;
 * are not available in OpenImmo 1.2.6.
 *
 * @param doc OpenImmo document in version 1.2.7
 * @throws JaxenException
 */
protected void downgradeEnergiepassElements(Document doc) throws JaxenException {
    List nodes = XmlUtils
            .newXPath("/io:openimmo/io:anbieter/io:immobilie/io:zustand_angaben/io:energiepass", doc)
            .selectNodes(doc);
    for (Object item : nodes) {
        Element node = (Element) item;
        Element parentNode = (Element) node.getParentNode();
        boolean stromwertPassed = false;
        boolean waermewertPassed = false;
        boolean wertklassePassed = false;
        boolean baujahrPassed = false;
        boolean ausstelldatumPassed = false;
        boolean jahrgangPassed = false;
        boolean gebaeudeartPassed = false;
        List childNodes;

        // <primaerenergietraeger> elements are not supported in version 1.2.6
        childNodes = XmlUtils.newXPath("io:primaerenergietraeger", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            node.removeChild(childNode);
        }

        // <epasstext> elements are not supported in version 1.2.6
        childNodes = XmlUtils.newXPath("io:epasstext", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <stromwert> elements
        childNodes = XmlUtils.newXPath("io:stromwert", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!stromwertPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if (value != null) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_stromwert", value));
                    stromwertPassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <waermewert> elements
        childNodes = XmlUtils.newXPath("io:waermewert", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!waermewertPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if (value != null) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_waermewert", value));
                    waermewertPassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <wertklasse> elements
        childNodes = XmlUtils.newXPath("io:wertklasse", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!wertklassePassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if (value != null) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_wertklasse", value));
                    wertklassePassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <baujahr> elements
        childNodes = XmlUtils.newXPath("io:baujahr", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!baujahrPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if (value != null) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_baujahr", value));
                    baujahrPassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <ausstelldatum> elements
        childNodes = XmlUtils.newXPath("io:ausstelldatum", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!ausstelldatumPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if (value != null) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_ausstelldatum", value));
                    ausstelldatumPassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <jahrgang> elements
        childNodes = XmlUtils.newXPath("io:jahrgang", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!jahrgangPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if ("2008".equalsIgnoreCase(value) || "2014".equalsIgnoreCase(value)
                        || "ohne".equalsIgnoreCase(value)) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_jahrgang", value));
                    jahrgangPassed = true;
                }
            }
            node.removeChild(childNode);
        }

        // create a <user_defined_simplefield> for <gebaeudeart> elements
        childNodes = XmlUtils.newXPath("io:gebaeudeart", doc).selectNodes(node);
        for (Object childItem : childNodes) {
            Node childNode = (Node) childItem;
            if (!gebaeudeartPassed) {
                String value = StringUtils.trimToNull(childNode.getTextContent());
                if ("wohn".equalsIgnoreCase(value) || "nichtwohn".equalsIgnoreCase(value)
                        || "ohne".equalsIgnoreCase(value)) {
                    parentNode.appendChild(
                            OpenImmoUtils.createUserDefinedSimplefield(doc, "epass_gebaeudeart", value));
                    gebaeudeartPassed = true;
                }
            }
            node.removeChild(childNode);
        }
    }
}

From source file:org.openestate.io.openimmo.converters.OpenImmo_1_2_7.java

/**
 * Remove &lt;objekt_text&gt; elements.
 * <p>/* w w w  . ja v a 2s  .  c  om*/
 * OpenImmo 1.2.6 does not support &lt;objekt_text&gt; elements.
 *
 * @param doc OpenImmo document in version 1.2.7
 * @throws JaxenException
 */
protected void removeObjektTextElements(Document doc) throws JaxenException {
    List nodes = XmlUtils.newXPath("/io:openimmo/io:anbieter/io:immobilie/io:freitexte/io:objekt_text", doc)
            .selectNodes(doc);
    for (Object item : nodes) {
        Element node = (Element) item;
        Element parentNode = (Element) node.getParentNode();
        parentNode.removeChild(node);
    }
}

From source file:org.openestate.io.openimmo.converters.OpenImmo_1_2_7.java

/**
 * Upgrade &lt;energiepass&gt; elements to OpenImmo 1.2.7.
 * <p>//from   www. j  a va2  s. co m
 * The &lt;user_defined_simplefield&gt; elements for EnEv2014, that were
 * <a href="http://www.openimmo.de/go.php/p/44/cm_enev2014.htm">suggested by OpenImmo e.V.</a>,
 * are explicitly supported in OpenImmo 1.2.7 as child elements of
 * &lt;energiepass&gt;. Any matching &lt;user_defined_simplefield&gt; elements
 * are moved into the &lt;energiepass&gt; element.
 *
 * @param doc OpenImmo document in version 1.2.6
 * @throws JaxenException
 */
protected void upgradeEnergiepassElements(Document doc) throws JaxenException {
    Map<String, String> fields = new HashMap<String, String>();
    fields.put("stromwert", "user_defined_simplefield[@feldname='epass_stromwert']");
    fields.put("waermewert", "user_defined_simplefield[@feldname='epass_waermewert']");
    fields.put("wertklasse", "user_defined_simplefield[@feldname='epass_wertklasse']");
    fields.put("baujahr", "user_defined_simplefield[@feldname='epass_baujahr']");
    fields.put("ausstelldatum", "user_defined_simplefield[@feldname='epass_ausstelldatum']");
    fields.put("jahrgang", "user_defined_simplefield[@feldname='epass_jahrgang']");
    fields.put("gebaeudeart", "user_defined_simplefield[@feldname='epass_gebaeudeart']");

    List nodes = XmlUtils.newXPath("/io:openimmo/io:anbieter/io:immobilie/io:zustand_angaben", doc)
            .selectNodes(doc);
    for (Object item : nodes) {
        Element node = (Element) item;

        Element energiepassNode = (Element) XmlUtils.newXPath("io:energiepass", doc).selectSingleNode(node);
        if (energiepassNode == null) {
            energiepassNode = doc.createElementNS(StringUtils.EMPTY, "energiepass");
        }
        for (Map.Entry<String, String> entry : fields.entrySet()) {
            boolean fieldProcessed = false;
            List childNodes = XmlUtils.newXPath(entry.getValue(), doc).selectNodes(node);
            for (Object childItem : childNodes) {
                Node childNode = (Node) childItem;
                if (!fieldProcessed) {
                    String value = StringUtils.trimToNull(childNode.getTextContent());
                    if (value != null) {
                        Element newElement = doc.createElementNS(StringUtils.EMPTY, entry.getKey());
                        newElement.setTextContent(value);
                        energiepassNode.appendChild(newElement);
                        fieldProcessed = true;
                    }
                }
                node.removeChild(childNode);
            }
        }
        if (energiepassNode.getParentNode() == null && energiepassNode.hasChildNodes()) {
            node.appendChild(energiepassNode);
        }
    }
}

From source file:org.openhab.binding.ihc.internal.ChannelUtils.java

private static void addChannelsFromProjectFile(Thing thing, NodeList nodes, String acceptedItemType,
        String group, String channelType, List<Channel> thingChannels) {
    if (thing != null && nodes != null && thingChannels != null) {
        for (int i = 0; i < nodes.getLength(); i++) {
            Element element = (Element) nodes.item(i);
            Element parent = (Element) element.getParentNode();

            if ("settings".equals(parent.getNodeName())) {
                // get settings element parent
                parent = (Element) parent.getParentNode();
            }/* w  ww .  jav a2s.c o  m*/

            Element parentParent = (Element) parent.getParentNode();

            String parentName = parent.getAttribute("name");
            String parentPosition = parent.getAttribute("position");
            String parentParentName = parentParent.getAttribute("name");

            String resourceName = element.getAttribute("name");
            int resourceId = Integer.parseInt(element.getAttribute("id").replace("_0x", ""), 16);

            String description = createDescription(parentParentName, parentPosition, parentName, resourceName);
            ChannelUID channelUID = new ChannelUID(thing.getUID(), group + resourceId);
            ChannelTypeUID type = new ChannelTypeUID(BINDING_ID, channelType);
            Configuration configuration = new Configuration();
            configuration.put(PARAM_RESOURCE_ID, new Integer(resourceId));

            Channel channel = ChannelBuilder.create(channelUID, acceptedItemType)
                    .withConfiguration(configuration).withLabel(description).withType(type).build();
            addOrUpdateChannel(channel, thingChannels);
        }
    }
}

From source file:org.openlegacy.terminal.web.render.support.DefaultTerminalSnapshotHtmlRenderer.java

private String renderHtml(TerminalSnapshot terminalSnapshot) {

    // elementsProvider is prototype
    elementsProvider = (DefaultElementsProvider) applicationContext.getBean(ElementsProvider.class);
    elementsProvider.setOnclickProperty(onclickProperty);
    elementsProvider.setSnapshot(terminalSnapshot);

    DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();

    Document doc;/*from  w  w w.ja v  a 2s  . co  m*/
    try {
        doc = dfactory.newDocumentBuilder().newDocument();

        String styleSettings = createStyleSettings(terminalSnapshot);

        Element formTag = createWrappingTag(doc);

        createHiddens(terminalSnapshot, formTag);

        createFields(terminalSnapshot, formTag);

        String cursorFieldName = getCursorFieldName(terminalSnapshot);
        createScript(formTag, cursorFieldName);

        calculateWidthHeight(terminalSnapshot, formTag);

        createMappings(formTag);

        renderActionButtons((Element) formTag.getParentNode());

        // generate style before the document. cause non aligned page when it's part of the document
        styleSettings = MessageFormat.format("<style>{0}</style>", styleSettings);
        return generate(styleSettings, doc);

    } catch (ParserConfigurationException e) {
        throw (new OpenLegacyRuntimeException(e));
    } catch (TransformerException e) {
        throw (new OpenLegacyRuntimeException(e));
    }

}

From source file:org.openmrs.module.clinicalsummary.rule.post.AdultReminderStudyRule.java

/**
 * @see org.openmrs.logic.Rule#eval(org.openmrs.logic.LogicContext, Integer, java.util.Map)
 *///from www  . j av  a  2  s  .c om
@Override
protected Result evaluate(final LogicContext context, final Integer patientId,
        final Map<String, Object> parameters) {
    String artifact = decodeArtifact(parameters.get(POST_EVALUATION_ARTIFACT));
    Result result = new Result(artifact);

    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        InputSource is = new InputSource(new StringReader(artifact));
        Document document = db.parse(is);

        Element element = document.getDocumentElement();
        NodeList nodeList = element.getElementsByTagName("reminder");
        if (nodeList != null && nodeList.getLength() > MAXIMUM_REMINDER_DISPLAYED) {
            Random random = new Random();
            while (nodeList.getLength() > MAXIMUM_REMINDER_DISPLAYED) {
                Integer randomizedValue = random.nextInt(MAXIMUM_RANDOM_VALUE);
                Integer moduloValue = randomizedValue % nodeList.getLength();
                // get the element
                Element nodeElement = (Element) nodeList.item(moduloValue);
                // get the parent node and then remove the above node
                Node parentNode = nodeElement.getParentNode();
                parentNode.removeChild(nodeElement);
            }
        }

        OutputFormat format = new OutputFormat();
        format.setIndenting(true);
        format.setLineWidth(150);

        Writer writer = new StringWriter();
        XMLSerializer xmlSerializer = new XMLSerializer(writer, format);
        xmlSerializer.serialize(document);
        result = new Result(writer.toString());
    } catch (Exception e) {
        log.error("Failed parsing xml string ...", e);
    }

    return result;
}

From source file:org.openmrs.module.formentry.PublishInfoPath.java

private static void modifyFormId(File tempDir, Form form) {
    File xsd = FormEntryUtil.findFile(tempDir, "FormEntry.xsd");
    try {/*from w  w  w . ja v a2s  .  co m*/
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(xsd);
        Element parent = getSingleElement(doc.getElementsByTagName("xs:element"), "form");
        if (parent == null) {
            log.warn("Could not locate xs:element element in xsd!");
        }
        Element uuidElem = getSingleElement(parent.getElementsByTagName("xs:attribute"), "uuid");

        Element idElem = getSingleElement(parent.getElementsByTagName("xs:attribute"), "id");

        if (uuidElem == null || !OpenmrsUtil.nullSafeEquals(uuidElem.getAttribute("name"), "uuid")) {
            log.warn("could not find uuid element in xsd");
            // create a new UUID element
            Element newElem = doc.createElement("xs:attribute");
            newElem.setAttribute("name", "uuid");
            newElem.setAttribute("type", "xs:string");
            newElem.setAttribute("use", "required");
            Node realParent = idElem.getParentNode();
            realParent.appendChild(newElem);
            // try again to get it
            uuidElem = getSingleElement(parent.getElementsByTagName("xs:attribute"), "uuid");
        }
        uuidElem.setAttribute("fixed", form.getUuid().toString());

        if (idElem == null) {
            log.warn("Could not locate form id attribute in xsd!");
        }

        idElem.setAttribute("type", "xs:string");
        idElem.setAttribute("fixed", form.getFormId().toString());

        // save the document
        OpenmrsUtil.saveDocument(doc, xsd);
    } catch (ParserConfigurationException e) {
        log.error("Error building xml document", e);
    } catch (SAXException e) {
        log.error("Error parsing form data", e);
    } catch (IOException e) {
        log.error("Error parsing form data", e);
    }

}

From source file:org.openmrs.projectbuendia.webservices.rest.XformResource.java

/**
 * Removes the relationship nodes added (unconditionally) by xforms. If
 * XFRM-189 is fixed, this method can go away.
 *//* w w  w  . j  a  va2 s .c  o m*/
static String removeRelationshipNodes(String xml) throws IOException, SAXException {
    Document doc = XmlUtil.parse(xml);
    removeBinding(doc, "patient_relative");
    removeBinding(doc, "patient_relative.person");
    removeBinding(doc, "patient_relative.relationship");

    for (Element relative : toElementIterable(doc.getElementsByTagNameNS("", "patient_relative"))) {
        removeNode(relative);
    }

    // Remove every parent of a label element with a text of
    // "RELATIONSHIPS". (Easiest way to find the ones added...)
    for (Element label : toElementIterable(doc.getElementsByTagNameNS(XFORMS_NAMESPACE, "label"))) {
        Element parent = (Element) label.getParentNode();
        if (XFORMS_NAMESPACE.equals(parent.getNamespaceURI()) && parent.getLocalName().equals("group")
                && "RELATIONSHIPS".equals(label.getTextContent())) {
            removeNode(parent);
            // We don't need to find other labels now, especially if they
            // may already have been removed.
            break;
        }
    }
    return XformsUtil.doc2String(doc);
}