X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=src%2Fde%2Ftodesbaum%2Futil%2Fxml%2FSimpleXML.java;h=b41d600772b1a02e3c6c124247f2ea7ea1cf2ca1;hb=a2724e9eb5094194cc9ec17185c324f84360353f;hp=a45f3d99f2a84d132a62f405887891b357de3e24;hpb=bbfa208695e2a7f1bb555f841623945767f296e7;p=jSite.git
diff --git a/src/de/todesbaum/util/xml/SimpleXML.java b/src/de/todesbaum/util/xml/SimpleXML.java
index a45f3d9..b41d600 100644
--- a/src/de/todesbaum/util/xml/SimpleXML.java
+++ b/src/de/todesbaum/util/xml/SimpleXML.java
@@ -30,8 +30,9 @@ import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
/**
- * SimpleXML is a helper class to construct XML trees in a fast and simple way. Construct a new XML tree by calling {@link #SimpleXML(String)} and
- * append new nodes by calling {@link #append(String)}.
+ * SimpleXML is a helper class to construct XML trees in a fast and simple way.
+ * Construct a new XML tree by calling {@link #SimpleXML(String)} and append new
+ * nodes by calling {@link #append(String)}.
*
* @author David Roden <droden@gmail.com>
* @version $Id:SimpleXML.java 221 2006-03-06 14:46:49Z bombe $
@@ -71,12 +72,14 @@ public class SimpleXML {
}
/**
- * Returns the child node of this node with the specified name. If there are several child nodes with the specified name only the first node is
+ * Returns the child node of this node with the specified name. If there are
+ * several child nodes with the specified name only the first node is
* returned.
*
* @param nodeName
* The name of the child node
- * @return The child node, or null
if there is no child node with the specified name
+ * @return The child node, or null
if there is no child node
+ * with the specified name
*/
public SimpleXML getNode(String nodeName) {
for (int index = 0, count = children.size(); index < count; index++) {
@@ -88,20 +91,24 @@ public class SimpleXML {
}
/**
- * Returns the child node that is specified by the names. The first element of nodeNames
is the name of the child node of this
- * node, the second element of nodeNames
is the name of a child node's child node, and so on. By using this method you can descend
- * into an XML tree pretty fast.
+ * Returns the child node that is specified by the names. The first element
+ * of nodeNames
is the name of the child node of this node, the
+ * second element of nodeNames
is the name of a child node's
+ * child node, and so on. By using this method you can descend into an XML
+ * tree pretty fast.
*
*
+ * * SimpleXML deepNode = topNode.getNodes(new String[] { "person", "address", "number" }); ** * @param nodeNames - * @return A node that is a deep child of this node, or
null
if the specified node does not eixst
+ * @return A node that is a deep child of this node, or null
if
+ * the specified node does not eixst
*/
public SimpleXML getNode(String[] nodeNames) {
SimpleXML node = this;
- for (String nodeName: nodeNames) {
+ for (String nodeName : nodeNames) {
node = node.getNode(nodeName);
}
return node;
@@ -117,15 +124,17 @@ public class SimpleXML {
}
/**
- * Returns all child nodes of this node with the specified name. If there are no child nodes with the specified name an empty array is returned.
+ * Returns all child nodes of this node with the specified name. If there
+ * are no child nodes with the specified name an empty array is returned.
*
* @param nodeName
- * The name of the nodes to retrieve, or null
to retrieve all nodes
+ * The name of the nodes to retrieve, or null
to
+ * retrieve all nodes
* @return All child nodes with the specified name
*/
public SimpleXML[] getNodes(String nodeName) {
List+ * * SimpleXML mouseNode = topNode.append("computer").append("bus").append("usb").append("mouse"); ** @@ -149,7 +160,8 @@ public class SimpleXML { } /** - * Appends a new XML node with the specified name and value and returns the new node. + * Appends a new XML node with the specified name and value and returns the + * new node. * * @param nodeName * The name of the node to append @@ -162,7 +174,8 @@ public class SimpleXML { } /** - * Appends the node with all its child nodes to this node and returns the child node. + * Appends the node with all its child nodes to this node and returns the + * child node. * * @param newChild * The node to append as a child @@ -229,6 +242,18 @@ public class SimpleXML { } /** + * Returns the value of this node. If the node does not have a value, the + * given default value is returned. + * + *@param defaultValue + * The default value to return if the node does not have a value + * @return The value of this node + */ + public String getValue(String defaultValue) { + return (value == null) ? defaultValue : value; + } + + /** * Creates a {@link Document} from this node and all its child nodes. * * @return The {@link Document} created from this node @@ -248,14 +273,15 @@ public class SimpleXML { } /** - * Appends all children of this node to the specified {@link Element}. If a node has a value that is not
null
the value is
- * appended as a text node.
+ * Appends all children of this node to the specified {@link Element}. If a
+ * node has a value that is not null
the value is appended as a
+ * text node.
*
* @param rootElement
* The element to attach this node's children to
*/
private void addChildren(Element rootElement) {
- for (SimpleXML child: children) {
+ for (SimpleXML child : children) {
Element childElement = rootElement.getOwnerDocument().createElement(child.name);
rootElement.appendChild(childElement);
if (child.value != null) {
@@ -268,7 +294,8 @@ public class SimpleXML {
}
/**
- * Creates a SimpleXML node from the specified {@link Document}. The SimpleXML node of the document's top-level node is returned.
+ * Creates a SimpleXML node from the specified {@link Document}. The
+ * SimpleXML node of the document's top-level node is returned.
*
* @param document
* The {@link Document} to create a SimpleXML node from
@@ -281,7 +308,8 @@ public class SimpleXML {
}
/**
- * Appends the child nodes of the specified {@link Document} to this node. Text nodes are converted into a node's value.
+ * Appends the child nodes of the specified {@link Document} to this node.
+ * Text nodes are converted into a node's value.
*
* @param xmlDocument
* The SimpleXML node to append the child nodes to
@@ -293,7 +321,7 @@ public class SimpleXML {
NodeList childNodes = document.getChildNodes();
for (int childIndex = 0, childCount = childNodes.getLength(); childIndex < childCount; childIndex++) {
Node childNode = childNodes.item(childIndex);
- if ((childNode.getChildNodes().getLength() == 1) && (childNode.getFirstChild().getNodeName().equals("#text")) /*&& (childNode.getFirstChild().getNodeValue().trim().length() != 0)*/) {
+ if ((childNode.getChildNodes().getLength() == 1) && (childNode.getFirstChild().getNodeName().equals("#text"))) {
xmlDocument.append(childNode.getNodeName(), childNode.getFirstChild().getNodeValue());
} else {
if (!childNode.getNodeName().equals("#text") || (childNode.getChildNodes().getLength() != 0)) {