List of usage examples for org.w3c.dom Element getOwnerDocument
public Document getOwnerDocument();
Document
object associated with this node. From source file:XMLUtils.java
/** * Adds an element as a child of a given element. * The child is created with the same namespace as the parent. * @param parent// w ww .j av a 2 s.co m * @param name * @return */ public static Element addElement(Element parent, String name) { Document doc = parent.getOwnerDocument(); String qname; if (parent.getPrefix() != null) { qname = parent.getPrefix() + ":" + name; } else { qname = name; } Element child = doc.createElementNS(parent.getNamespaceURI(), qname); parent.appendChild(child); return child; }
From source file:Main.java
/** * Find an element using XPath-quotation expressions. Path must not including * the context element, path elements can be separated by / or ., * and namespace is NOT supported.// w w w.j a va 2 s. c o m * @param context Element to start the search from, cannot be null. * @param path XPath-quotation expression, cannot be null. * @param create if true, new elements are created if necessary. * @return the first matched element if there are matches, otherwise * return null. */ public static Element getElementByPath(Element context, String path, boolean create) { Element cur = context; StringTokenizer tokens = new StringTokenizer(path, "/"); while (tokens.hasMoreTokens()) { String name = tokens.nextToken(); Element parent = cur; cur = getChildElement(cur, name); if (cur == null) { if (create) { // create the element Element newElement = context.getOwnerDocument().createElement(name); //context.appendChild(newElement); parent.appendChild(newElement); cur = newElement; } else { return null; } } } return cur; }
From source file:com.prowidesoftware.swift.io.parser.MxParser.java
/** * Parse the business header from an XML Element node * @see #parseBusinessHeader()/*w w w . ja va2s .co m*/ * @since 7.8 */ public static BusinessHeader parseBusinessHeader(final org.w3c.dom.Element e) { org.w3c.dom.ls.DOMImplementationLS lsImpl = (org.w3c.dom.ls.DOMImplementationLS) e.getOwnerDocument() .getImplementation().getFeature("LS", "3.0"); org.w3c.dom.ls.LSSerializer serializer = lsImpl.createLSSerializer(); serializer.getDomConfig().setParameter("xml-declaration", false); String xml = serializer.writeToString(e); MxParser parser = new MxParser(xml); return parser.parseBusinessHeader(); }
From source file:com.microsoft.tfs.util.xml.DOMUtils.java
/** * Adds a new {@link Element} node to a {@link Document} tree as a child of * the specified parent {@link Element}. * * @param parent//from w w w .j a va 2 s . c o m * the parent {@link Element} (must not be <code>null</code>) * @param namespaceURI * the namespace URI to put the new child in, or <code>null</code> * @param qualifiedName * the qualified name to give the new child (must not be * <code>null</code>) * @return the new child {@link Element} (never <code>null</code>) */ public static Element appendChildNS(final Element parent, final String namespaceURI, final String qualifiedName) { Check.notNull(parent, "parent"); //$NON-NLS-1$ final Element newChild = parent.getOwnerDocument().createElementNS(namespaceURI, qualifiedName); parent.appendChild(newChild); return newChild; }
From source file:DomUtil.java
/** * Sets the text content of a DOM <code>Element</code>. * /* w ww. j a v a 2 s . c o m*/ * @param element The <code>Element</code> to modify. * @param value The new text value. */ public static void setElementText(Element element, String value) { NodeList children = element.getChildNodes(); int childCount = children.getLength(); for (int index = 0; index < childCount; ++index) { if (children.item(index) instanceof Text) { Text text = (Text) children.item(index); text.setData(value); return; } } Text text = element.getOwnerDocument().createTextNode(value); element.appendChild(text); }
From source file:XMLUtils.java
/** * Adds an element as a child of a given element and sets the text value. * The child is created with the same namespace as the parent. * /* w w w.j av a 2s . c o m*/ * @param parent * @param name * @param textValue * @return */ public static Element addElement(Element parent, String name, String textValue) { Element child = addElement(parent, name); // create a text node if (textValue == null) { textValue = ""; } Text txt = child.getOwnerDocument().createTextNode(textValue); child.appendChild(txt); return child; }
From source file:com.msopentech.odatajclient.engine.data.json.DOMTreeUtils.java
/** * Recursively builds DOM content out of JSON subtree rooted at given node. * * @param document root of the DOM document being built * @param parent parent of the nodes being generated during this step * @param node JSON node to be used as source for DOM elements *//*from w w w . j a v a 2 s .co m*/ public static void buildSubtree(final Element parent, final JsonNode node) { final Iterator<String> fieldNameItor = node.fieldNames(); final Iterator<JsonNode> nodeItor = node.elements(); while (nodeItor.hasNext()) { final JsonNode child = nodeItor.next(); final String name = fieldNameItor.hasNext() ? fieldNameItor.next() : ""; // no name? array item if (name.isEmpty()) { final Element element = parent.getOwnerDocument().createElementNS(ODataConstants.NS_DATASERVICES, ODataConstants.PREFIX_DATASERVICES + ODataConstants.ELEM_ELEMENT); parent.appendChild(element); if (child.isValueNode()) { if (child.isNull()) { element.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_NULL, Boolean.toString(true)); } else { element.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); } } if (child.isContainerNode()) { buildSubtree(element, child); } } else if (!name.contains("@") && !ODataConstants.JSON_TYPE.equals(name)) { final Element property = parent.getOwnerDocument().createElementNS(ODataConstants.NS_DATASERVICES, ODataConstants.PREFIX_DATASERVICES + name); parent.appendChild(property); boolean typeSet = false; if (node.hasNonNull(name + "@" + ODataConstants.JSON_TYPE)) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, node.get(name + "@" + ODataConstants.JSON_TYPE).textValue()); typeSet = true; } if (child.isNull()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_NULL, Boolean.toString(true)); } else if (child.isValueNode()) { if (!typeSet) { if (child.isInt()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int32.toString()); } if (child.isLong()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int64.toString()); } if (child.isBigDecimal()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Decimal.toString()); } if (child.isDouble()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Double.toString()); } if (child.isBoolean()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Boolean.toString()); } if (child.isTextual()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.String.toString()); } } property.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); } else if (child.isContainerNode()) { if (!typeSet && child.hasNonNull(ODataConstants.JSON_TYPE)) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, child.get(ODataConstants.JSON_TYPE).textValue()); } final String type = property.getAttribute(ODataConstants.ATTR_M_TYPE); if (StringUtils.isNotBlank(type) && EdmSimpleType.isGeospatial(type)) { if (EdmSimpleType.Geography.toString().equals(type) || EdmSimpleType.Geometry.toString().equals(type)) { final String geoType = child.get(ODataConstants.ATTR_TYPE).textValue(); property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, geoType.startsWith("Geo") ? EdmSimpleType.namespace() + "." + geoType : type + geoType); } if (child.has(ODataConstants.JSON_COORDINATES) || child.has(ODataConstants.JSON_GEOMETRIES)) { GeospatialJSONHandler.deserialize(child, property, property.getAttribute(ODataConstants.ATTR_M_TYPE)); } } else { buildSubtree(property, child); } } } } }
From source file:com.msopentech.odatajclient.engine.data.json.DOMTreeUtilsV4.java
public static void buildSubtree(final Element parent, final JsonNode node) { final String v4AnnotationPrefix = "@"; final Iterator<String> fieldNameItor = node.fieldNames(); final Iterator<JsonNode> nodeItor = node.elements(); while (nodeItor.hasNext()) { final JsonNode child = nodeItor.next(); final String name = fieldNameItor.hasNext() ? fieldNameItor.next() : ""; // no name? array item if (name.isEmpty()) { final Element element = parent.getOwnerDocument().createElementNS(ODataConstants.NS_DATASERVICES, ODataConstants.PREFIX_DATASERVICES + ODataConstants.ELEM_ELEMENT); parent.appendChild(element); if (child.isValueNode()) { if (child.isNull()) { element.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_NULL, Boolean.toString(true)); } else { element.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); }//from w ww .j a v a 2 s.co m } if (child.isContainerNode()) { buildSubtree(element, child); } } else if (!name.contains("@") && !ODataConstants.JSON_TYPE.equals(name)) { final Element property = parent.getOwnerDocument().createElementNS(ODataConstants.NS_DATASERVICES, ODataConstants.PREFIX_DATASERVICES + name); parent.appendChild(property); boolean typeSet = false; if (node.hasNonNull(name + "@" + ODataConstants.JSON_TYPE)) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, node.get(name + "@" + ODataConstants.JSON_TYPE).textValue()); typeSet = true; } if (child.isNull()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_NULL, Boolean.toString(true)); } else if (child.isValueNode()) { if (!typeSet) { if (child.isInt()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int32.toString()); } if (child.isLong()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int64.toString()); } if (child.isBigDecimal()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Decimal.toString()); } if (child.isDouble()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Double.toString()); } if (child.isBoolean()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.Boolean.toString()); } if (child.isTextual()) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, EdmSimpleType.String.toString()); } } property.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); } else if (child.isContainerNode()) { if (!typeSet && child.hasNonNull(v4AnnotationPrefix + ODataConstants.JSON_TYPE)) { property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, child.get(v4AnnotationPrefix + ODataConstants.JSON_TYPE).textValue()); } final String type = property.getAttribute(ODataConstants.ATTR_M_TYPE); if (StringUtils.isNotBlank(type) && EdmSimpleType.isGeospatial(type)) { if (EdmSimpleType.Geography.toString().equals(type) || EdmSimpleType.Geometry.toString().equals(type)) { final String geoType = child.get(ODataConstants.ATTR_TYPE).textValue(); property.setAttributeNS(ODataConstants.NS_METADATA, ODataConstants.ATTR_M_TYPE, geoType.startsWith("Geo") ? EdmSimpleType.namespace() + "." + geoType : type + geoType); } if (child.has(ODataConstants.JSON_COORDINATES) || child.has(ODataConstants.JSON_GEOMETRIES)) { GeospatialJSONHandler.deserialize(child, property, property.getAttribute(ODataConstants.ATTR_M_TYPE)); } } else { buildSubtree(property, child); } } } } }
From source file:com.msopentech.odatajclient.engine.data.impl.JSONDOMTreeUtils.java
/** * Recursively builds DOM content out of JSON subtree rooted at given node. * * @param client OData client.// w w w . j a va 2 s . com * @param document root of the DOM document being built * @param parent parent of the nodes being generated during this step * @param node JSON node to be used as source for DOM elements */ public static void buildSubtree(final ODataClient client, final Element parent, final JsonNode node) { final Iterator<String> fieldNameItor = node.fieldNames(); final Iterator<JsonNode> nodeItor = node.elements(); while (nodeItor.hasNext()) { final JsonNode child = nodeItor.next(); final String name = fieldNameItor.hasNext() ? fieldNameItor.next() : ""; // no name? array item if (name.isEmpty()) { final Element element = parent.getOwnerDocument().createElementNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_DATASERVICES), ODataConstants.PREFIX_DATASERVICES + ODataConstants.ELEM_ELEMENT); parent.appendChild(element); if (child.isValueNode()) { if (child.isNull()) { element.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_NULL, Boolean.toString(true)); } else { element.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); } } if (child.isContainerNode()) { buildSubtree(client, element, child); } } else if (!name.contains("@") && !ODataConstants.JSON_TYPE.equals(name)) { final Element property = parent.getOwnerDocument().createElementNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_DATASERVICES), ODataConstants.PREFIX_DATASERVICES + name); parent.appendChild(property); boolean typeSet = false; if (node.hasNonNull(name + "@" + ODataConstants.JSON_TYPE)) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, node.get(name + "@" + ODataConstants.JSON_TYPE).textValue()); typeSet = true; } if (child.isNull()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_NULL, Boolean.toString(true)); } else if (child.isValueNode()) { if (!typeSet) { if (child.isInt()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int32.toString()); } if (child.isLong()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.Int64.toString()); } if (child.isBigDecimal()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.Decimal.toString()); } if (child.isDouble()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.Double.toString()); } if (child.isBoolean()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.Boolean.toString()); } if (child.isTextual()) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, EdmSimpleType.String.toString()); } } property.appendChild(parent.getOwnerDocument().createTextNode(child.asText())); } else if (child.isContainerNode()) { if (!typeSet && child.hasNonNull(ODataConstants.JSON_TYPE)) { property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, child.get(ODataConstants.JSON_TYPE).textValue()); } final String type = property.getAttribute(ODataConstants.ATTR_M_TYPE); if (StringUtils.isNotBlank(type) && EdmSimpleType.isGeospatial(type)) { if (EdmSimpleType.Geography.toString().equals(type) || EdmSimpleType.Geometry.toString().equals(type)) { final String geoType = child.get(ODataConstants.ATTR_TYPE).textValue(); property.setAttributeNS( client.getWorkingVersion().getNamespaceMap().get(ODataVersion.NS_METADATA), ODataConstants.ATTR_M_TYPE, geoType.startsWith("Geo") ? EdmSimpleType.namespace() + "." + geoType : type + geoType); } if (child.has(ODataConstants.JSON_COORDINATES) || child.has(ODataConstants.JSON_GEOMETRIES)) { GeospatialJSONHandler.deserialize(child, property, property.getAttribute(ODataConstants.ATTR_M_TYPE)); } } else { buildSubtree(client, property, child); } } } } }
From source file:de.betterform.xml.xforms.ui.state.UIElementStateUtil.java
/** * Creates the state element./*from w ww . j a va 2 s . com*/ * * @param parent the parent element to use. * @return the state element. */ public static Element createStateElement(Element parent) { Element state = DOMUtil.findFirstChildNS(parent, NamespaceConstants.BETTERFORM_NS, UIElementState.STATE_ELEMENT); if (state != null) { return state; } Document document = parent.getOwnerDocument(); state = document.createElementNS(NamespaceConstants.BETTERFORM_NS, NamespaceConstants.BETTERFORM_PREFIX + ":" + UIElementState.STATE_ELEMENT); parent.appendChild(state); return state; }