mirror of
https://github.com/hapifhir/hapi-fhir.git
synced 2025-02-16 18:05:19 +00:00
Add utility method to XmlUtil
This commit is contained in:
parent
c6769ef075
commit
a35c97e13d
@ -31,7 +31,7 @@ import org.apache.commons.text.StringEscapeUtils;
|
||||
import org.codehaus.stax2.XMLOutputFactory2;
|
||||
import org.codehaus.stax2.io.EscapingWriterFactory;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
import org.xml.sax.InputSource;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
@ -49,7 +49,6 @@ import javax.xml.stream.XMLStreamWriter;
|
||||
import javax.xml.stream.events.XMLEvent;
|
||||
import javax.xml.transform.OutputKeys;
|
||||
import javax.xml.transform.Transformer;
|
||||
import javax.xml.transform.TransformerConfigurationException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import javax.xml.transform.TransformerFactory;
|
||||
import javax.xml.transform.dom.DOMSource;
|
||||
@ -1890,11 +1889,18 @@ public class XmlUtil {
|
||||
return builder.parse(src);
|
||||
}
|
||||
|
||||
public static String encodeDocument(Element theElement) throws TransformerException {
|
||||
public static String encodeDocument(Node theElement) throws TransformerException {
|
||||
return encodeDocument(theElement, false);
|
||||
}
|
||||
|
||||
public static String encodeDocument(Node theElement, boolean theIndent) throws TransformerException {
|
||||
TransformerFactory transFactory = TransformerFactory.newInstance();
|
||||
Transformer transformer = transFactory.newTransformer();
|
||||
StringWriter buffer = new StringWriter();
|
||||
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
|
||||
if (theIndent) {
|
||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
}
|
||||
transformer.transform(new DOMSource(theElement), new StreamResult(buffer));
|
||||
return buffer.toString();
|
||||
}
|
||||
|
@ -8,13 +8,16 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
import javax.xml.parsers.ParserConfigurationException;
|
||||
import javax.xml.stream.FactoryConfigurationError;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.transform.TransformerException;
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
@ -74,6 +77,16 @@ public class XmlUtilDstu3Test {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncodePrettyPrint() throws IOException, SAXException, TransformerException {
|
||||
String input = "<document><tag id=\"1\"/></document>";
|
||||
Document parsed = XmlUtil.parseDocument(input);
|
||||
String output = XmlUtil.encodeDocument(parsed, true);
|
||||
assertEquals("<document>\n" +
|
||||
" <tag id=\"1\"/>\n" +
|
||||
"</document>\n", output);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testApplyUnsupportedFeature() throws IOException, SAXException {
|
||||
assertNotNull(XmlUtil.parseDocument("<document></document>"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user