Methods Summary |
---|
public static void | copyInto(org.w3c.dom.Node src, org.w3c.dom.Node dest)Copies the source tree into the specified place in a destination
tree. The source node and its children are appended as children
of the destination node.
Note: This is an iterative implementation.
// get node factory
Document factory = dest.getOwnerDocument();
boolean domimpl = factory instanceof DocumentImpl;
// placement variables
Node start = src;
Node parent = src;
Node place = src;
// traverse source tree
while (place != null) {
// copy this node
Node node = null;
int type = place.getNodeType();
switch (type) {
case Node.CDATA_SECTION_NODE: {
node = factory.createCDATASection(place.getNodeValue());
break;
}
case Node.COMMENT_NODE: {
node = factory.createComment(place.getNodeValue());
break;
}
case Node.ELEMENT_NODE: {
Element element = factory.createElement(place.getNodeName());
node = element;
NamedNodeMap attrs = place.getAttributes();
int attrCount = attrs.getLength();
for (int i = 0; i < attrCount; i++) {
Attr attr = (Attr)attrs.item(i);
String attrName = attr.getNodeName();
String attrValue = attr.getNodeValue();
element.setAttribute(attrName, attrValue);
if (domimpl && !attr.getSpecified()) {
((AttrImpl)element.getAttributeNode(attrName)).setSpecified(false);
}
}
break;
}
case Node.ENTITY_REFERENCE_NODE: {
node = factory.createEntityReference(place.getNodeName());
break;
}
case Node.PROCESSING_INSTRUCTION_NODE: {
node = factory.createProcessingInstruction(place.getNodeName(),
place.getNodeValue());
break;
}
case Node.TEXT_NODE: {
node = factory.createTextNode(place.getNodeValue());
break;
}
default: {
throw new IllegalArgumentException("can't copy node type, "+
type+" ("+
node.getNodeName()+')");
}
}
dest.appendChild(node);
// iterate over children
if (place.hasChildNodes()) {
parent = place;
place = place.getFirstChild();
dest = node;
}
// advance
else {
place = place.getNextSibling();
while (place == null && parent != start) {
place = parent.getNextSibling();
parent = parent.getParentNode();
dest = dest.getParentNode();
}
}
}
|
public static org.w3c.dom.Attr | getAttr(org.w3c.dom.Element elem, java.lang.String name)
return elem.getAttributeNode(name);
|
public static org.w3c.dom.Attr | getAttrNS(org.w3c.dom.Element elem, java.lang.String nsUri, java.lang.String localName)
return elem.getAttributeNodeNS(nsUri, localName);
|
public static java.lang.String | getAttrValue(org.w3c.dom.Element elem, java.lang.String name)
return elem.getAttribute(name);
|
public static java.lang.String | getAttrValueNS(org.w3c.dom.Element elem, java.lang.String nsUri, java.lang.String localName)
return elem.getAttributeNS(nsUri, localName);
|
public static org.w3c.dom.Attr[] | getAttrs(org.w3c.dom.Element elem)
NamedNodeMap attrMap = elem.getAttributes();
Attr [] attrArray = new Attr[attrMap.getLength()];
for (int i=0; i<attrMap.getLength(); i++)
attrArray[i] = (Attr)attrMap.item(i);
return attrArray;
|
public static java.lang.String | getChildText(org.w3c.dom.Node node)Returns the concatenated child text of the specified node.
This method only looks at the immediate children of type
Node.TEXT_NODE or the children of any child
node that is of type Node.CDATA_SECTION_NODE
for the concatenation.
// is there anything to do?
if (node == null) {
return null;
}
// concatenate children text
StringBuffer str = new StringBuffer();
Node child = node.getFirstChild();
while (child != null) {
short type = child.getNodeType();
if (type == Node.TEXT_NODE) {
str.append(child.getNodeValue());
}
else if (type == Node.CDATA_SECTION_NODE) {
str.append(getChildText(child));
}
child = child.getNextSibling();
}
// return text value
return str.toString();
|
public static org.w3c.dom.Document | getDocument(org.w3c.dom.Node node)
return node.getOwnerDocument();
|
public static org.w3c.dom.Element | getFirstChildElement(org.w3c.dom.Node parent, java.lang.String elemName)Finds and returns the first child node with the given name.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
if (child.getNodeName().equals(elemName)) {
return (Element)child;
}
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstChildElement(org.w3c.dom.Node parent, java.lang.String[] elemNames)Finds and returns the first child node with the given name.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
if (child.getNodeName().equals(elemNames[i])) {
return (Element)child;
}
}
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstChildElement(org.w3c.dom.Node parent, java.lang.String elemName, java.lang.String attrName, java.lang.String attrValue)Finds and returns the first child node with the given name and
attribute name, value pair.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element)child;
if (element.getNodeName().equals(elemName) &&
element.getAttribute(attrName).equals(attrValue)) {
return element;
}
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstChildElement(org.w3c.dom.Node parent)Finds and returns the first child element node.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
return (Element)child;
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstChildElementNS(org.w3c.dom.Node parent, java.lang.String uri, java.lang.String localpart)Finds and returns the first child node with the given qualified name.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
String childURI = child.getNamespaceURI();
if (childURI != null && childURI.equals(uri) &&
child.getLocalName().equals(localpart)) {
return (Element)child;
}
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstChildElementNS(org.w3c.dom.Node parent, java.lang.String[][] elemNames)Finds and returns the first child node with the given qualified name.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
String uri = child.getNamespaceURI();
if (uri != null && uri.equals(elemNames[i][0]) &&
child.getLocalName().equals(elemNames[i][1])) {
return (Element)child;
}
}
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getFirstVisibleChildElement(org.w3c.dom.Node parent)Finds and returns the first visible child element node.
// search for node
Node child = parent.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE &&
!isHidden(child)) {
return (Element)child;
}
child = child.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElement(org.w3c.dom.Node parent, java.lang.String elemName)Finds and returns the last child node with the given name.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
if (child.getNodeName().equals(elemName)) {
return (Element)child;
}
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElement(org.w3c.dom.Node parent, java.lang.String[] elemNames)Finds and returns the last child node with the given name.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
if (child.getNodeName().equals(elemNames[i])) {
return (Element)child;
}
}
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElement(org.w3c.dom.Node parent, java.lang.String elemName, java.lang.String attrName, java.lang.String attrValue)Finds and returns the last child node with the given name and
attribute name, value pair.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element)child;
if (element.getNodeName().equals(elemName) &&
element.getAttribute(attrName).equals(attrValue)) {
return element;
}
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElement(org.w3c.dom.Node parent)Finds and returns the last child element node.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
return (Element)child;
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElementNS(org.w3c.dom.Node parent, java.lang.String uri, java.lang.String localpart)Finds and returns the last child node with the given qualified name.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
String childURI = child.getNamespaceURI();
if (childURI != null && childURI.equals(uri) &&
child.getLocalName().equals(localpart)) {
return (Element)child;
}
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastChildElementNS(org.w3c.dom.Node parent, java.lang.String[][] elemNames)Finds and returns the last child node with the given qualified name.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
String uri = child.getNamespaceURI();
if (uri != null && uri.equals(elemNames[i][0]) &&
child.getLocalName().equals(elemNames[i][1])) {
return (Element)child;
}
}
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getLastVisibleChildElement(org.w3c.dom.Node parent)Finds and returns the last visible child element node.
// search for node
Node child = parent.getLastChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE &&
!isHidden(child)) {
return (Element)child;
}
child = child.getPreviousSibling();
}
// not found
return null;
|
public static java.lang.String | getLocalName(org.w3c.dom.Node node)returns local name of this element if not null, otherwise
returns the name of the node
String name = node.getLocalName();
return (name!=null)? name:node.getNodeName();
|
public static java.lang.String | getName(org.w3c.dom.Node node)
return node.getNodeName();
|
public static java.lang.String | getNamespaceURI(org.w3c.dom.Node node)
return node.getNamespaceURI();
|
public static org.w3c.dom.Element | getNextSiblingElement(org.w3c.dom.Node node, java.lang.String elemName)Finds and returns the next sibling node with the given name.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
if (sibling.getNodeName().equals(elemName)) {
return (Element)sibling;
}
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextSiblingElement(org.w3c.dom.Node node, java.lang.String[] elemNames)Finds and returns the next sibling node with the given name.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
if (sibling.getNodeName().equals(elemNames[i])) {
return (Element)sibling;
}
}
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextSiblingElement(org.w3c.dom.Node node, java.lang.String elemName, java.lang.String attrName, java.lang.String attrValue)Finds and returns the next sibling node with the given name and
attribute name, value pair. Since only elements have attributes,
the node returned will be of type Node.ELEMENT_NODE.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element)sibling;
if (element.getNodeName().equals(elemName) &&
element.getAttribute(attrName).equals(attrValue)) {
return element;
}
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextSiblingElement(org.w3c.dom.Node node)Finds and returns the next sibling element node.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
return (Element)sibling;
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextSiblingElementNS(org.w3c.dom.Node node, java.lang.String uri, java.lang.String localpart)Finds and returns the next sibling node with the given qualified name.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
String siblingURI = sibling.getNamespaceURI();
if (siblingURI != null && siblingURI.equals(uri) &&
sibling.getLocalName().equals(localpart)) {
return (Element)sibling;
}
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextSiblingElementNS(org.w3c.dom.Node node, java.lang.String[][] elemNames)Finds and returns the next sibling node with the given qualified name.
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE) {
for (int i = 0; i < elemNames.length; i++) {
String uri = sibling.getNamespaceURI();
if (uri != null && uri.equals(elemNames[i][0]) &&
sibling.getLocalName().equals(elemNames[i][1])) {
return (Element)sibling;
}
}
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getNextVisibleSiblingElement(org.w3c.dom.Node node)
// search for node
Node sibling = node.getNextSibling();
while (sibling != null) {
if (sibling.getNodeType() == Node.ELEMENT_NODE &&
!isHidden(sibling)) {
return (Element)sibling;
}
sibling = sibling.getNextSibling();
}
// not found
return null;
|
public static org.w3c.dom.Element | getParent(org.w3c.dom.Element elem)
Node parent = elem.getParentNode();
if (parent instanceof Element)
return (Element)parent;
return null;
|
public static org.w3c.dom.Element | getRoot(org.w3c.dom.Document doc)
return doc.getDocumentElement();
|
public static java.lang.String | getValue(org.w3c.dom.Attr attribute)
return attribute.getValue();
|
public static boolean | isHidden(org.w3c.dom.Node node)
if (node instanceof com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)
return ((com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)node).getReadOnly();
else if (node instanceof com.sun.org.apache.xerces.internal.dom.NodeImpl)
return ((com.sun.org.apache.xerces.internal.dom.NodeImpl)node).getReadOnly();
return false;
|
public static void | setHidden(org.w3c.dom.Node node)
if (node instanceof com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)
((com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)node).setReadOnly(true, false);
else if (node instanceof com.sun.org.apache.xerces.internal.dom.NodeImpl)
((com.sun.org.apache.xerces.internal.dom.NodeImpl)node).setReadOnly(true, false);
|
public static void | setVisible(org.w3c.dom.Node node)
if (node instanceof com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)
((com.sun.org.apache.xerces.internal.impl.xs.opti.NodeImpl)node).setReadOnly(false, false);
else if (node instanceof com.sun.org.apache.xerces.internal.dom.NodeImpl)
((com.sun.org.apache.xerces.internal.dom.NodeImpl)node).setReadOnly(false, false);
|