37 lines
1.0 KiB
Java
37 lines
1.0 KiB
Java
import java.util.HashSet;
|
|
import org.w3c.dom.Document;
|
|
import org.w3c.dom.Node;
|
|
import org.w3c.dom.Element;
|
|
|
|
public class DomUtils {
|
|
|
|
private static HashSet<Document> pinned_list = new HashSet<Document>();
|
|
|
|
public static synchronized void pin(Document d) {
|
|
pinned_list.add(d);
|
|
}
|
|
|
|
public static synchronized void unpin(Document d) {
|
|
pinned_list.remove(d);
|
|
}
|
|
|
|
// return all the text content contained by a single element
|
|
public static void getElementContent(Element e, StringBuffer b) {
|
|
for (Node n = e.getFirstChild(); n!=null; n=n.getNextSibling()) {
|
|
if (n.getNodeType() == n.TEXT_NODE) {
|
|
b.append(n.getNodeValue());
|
|
} else if (n.getNodeType() == n.ELEMENT_NODE) {
|
|
getElementContent((Element) e, b);
|
|
}
|
|
}
|
|
}
|
|
|
|
// replace all child nodes of a given element with a single text element
|
|
public static void setElementContent(Element e, String s) {
|
|
while (e.hasChildNodes()) {
|
|
e.removeChild(e.getFirstChild());
|
|
}
|
|
e.appendChild(e.getOwnerDocument().createTextNode(s));
|
|
}
|
|
}
|