List of usage examples for org.w3c.dom Element getParentNode
public Node getParentNode();
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 * <preise> elements: <kaufpreisnetto>, <kaufpreisbrutto>, * <hauptmietzinsnetto>, <pauschalmiete>, * <betriebskostennetto>, <evbnetto>, <gesamtmietenetto>, * <gesamtmietebrutto>, <gesamtbelastungnetto>, * <gesamtbelastungbrutto>, <gesamtkostenprom2von>, * <heizkostennetto>, <monatlichekostennetto>, * <monatlichekostenbrutto>, <nebenkostenprom2von>, * <ruecklagenetto>, <sonstigekostennetto>, * <sonstigemietenetto>, <summemietenetto>, * <nettomieteprom2von>, <provisionnetto>, * <provisionbrutto>, <richtpreisprom2> * <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 <zwangsversteigerung> elements. * <p>//w w w . ja v a 2 s. c o m * OpenImmo 1.2.5 does not support <zwangsversteigerung> 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 <energiepass> elements to OpenImmo 1.2.6. * <p>/* w w w. j a v a 2s . c o m*/ * The child elements <stromwert>, <waermewert>, * <wertklasse>, <baujahr>, <ausstelldatum>, * <jahrgang>, <gebaeudeart> are copied into separate * <user_defined_simplefield> 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 <primaerenergietraeger>, <epasstext> * 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 <objekt_text> elements. * <p>/* w w w . ja v a 2s . c om*/ * OpenImmo 1.2.6 does not support <objekt_text> 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 <energiepass> elements to OpenImmo 1.2.7. * <p>//from www. j a va2 s. co m * The <user_defined_simplefield> 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 * <energiepass>. Any matching <user_defined_simplefield> elements * are moved into the <energiepass> 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); }