package net.jsunit.utility; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.output.Format; import org.jdom.output.XMLOutputter; import org.w3c.dom.Node; import org.w3c.dom.NamedNodeMap; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.StringReader; import java.io.StringWriter; public class XmlUtility { public static String asString(Element element) { return new XMLOutputter().outputString(element); } public static String asPrettyString(Element element) { return new XMLOutputter(Format.getPrettyFormat()).outputString(element); } public static String asPrettyString(Document document) { return new XMLOutputter(Format.getPrettyFormat()).outputString(document.getRootElement()); } public static String asString(Document document) { return new XMLOutputter().outputString(document); } public static Document asXmlDocument(String xmlDocumentString) { try { return new SAXBuilder().build(new StringReader(xmlDocumentString)); } catch (Exception e) { throw new RuntimeException(e); } } public static String asString(Node node) { try { Source source = new DOMSource(node); StringWriter stringWriter = new StringWriter(); Result result = new StreamResult(stringWriter); TransformerFactory factory = TransformerFactory.newInstance(); Transformer transformer = factory.newTransformer(); transformer.transform(source, result); return stringWriter.getBuffer().toString(); } catch (Exception e) { e.printStackTrace(); } return null; } public static Node srcAttribute(Node scriptElement) { NamedNodeMap attributes = scriptElement.getAttributes(); for (int i =0 ; i<attributes.getLength(); i++) { Node attribute = attributes.item(i); if (attribute.getNodeName().equalsIgnoreCase("SRC")) return attribute; } return null; } }