public Object unmarshal(Source source) throws IOException, XmlMappingException { //this.writeXml(((DOMSource)source).getNode().getOwnerDocument()); DOMResult result = null; try { Transformer transformer = transformerFactory.newTransformer(); result = new DOMResult(); transformer.transform(source, result); } catch (Exception e) { throw new MarshallingFailureException("Failed to unmarshal SOAP Response", e); } Weather weather = new Weather(); String expression = xpathPrefix + "p:City"; String city = XPathExpressionFactory.createXPathExpression(expression, namespacePrefixes).evaluateAsString(result.getNode()); weather.setCity(city); expression = xpathPrefix + "p:State"; String state = XPathExpressionFactory.createXPathExpression(expression, namespacePrefixes).evaluateAsString(result.getNode()); weather.setState(state); expression = xpathPrefix + "p:Temperature"; String temperature = XPathExpressionFactory.createXPathExpression(expression, namespacePrefixes).evaluateAsString(result.getNode()); weather.setTemperature(temperature); expression = xpathPrefix + "p:Description"; String description = XPathExpressionFactory.createXPathExpression(expression, namespacePrefixes).evaluateAsString(result.getNode()); weather.setDescription(description); return weather; }
/** * Template method for handling {@code DOMResult}s. * <p>This implementation delegates to {@code marshalDomNode}. * @param graph the root of the object graph to marshal * @param domResult the {@code DOMResult} * @throws XmlMappingException if the given object cannot be marshalled to the result * @throws IllegalArgumentException if the {@code domResult} is empty * @see #marshalDomNode(Object, org.w3c.dom.Node) */ protected void marshalDomResult(Object graph, DOMResult domResult) throws XmlMappingException { if (domResult.getNode() == null) { domResult.setNode(buildDocument()); } marshalDomNode(graph, domResult.getNode()); }
/** * <p>Zero-argument default constructor.</p> * * <p><code>node</code>, * <code>siblingNode</code> and * <code>systemId</code> * will be set to <code>null</code>.</p> */ public DOMResult() { setNode(null); setNextSibling(null); setSystemId(null); }
if ((node.compareDocumentPosition(nextSibling)&Node.DOCUMENT_POSITION_CONTAINED_BY)==0) { throw new IllegalArgumentException("Cannot create a DOMResult when the nextSibling is not contained by the node."); setNode(node); setNextSibling(nextSibling); setSystemId(null);
public Element getElement(DOMResult r) { // JAXP spec is ambiguous about what really happens in this case, // so work defensively Node n = r.getNode(); if( n instanceof Document ) { return ((Document)n).getDocumentElement(); } if( n instanceof Element ) return (Element)n; if( n instanceof DocumentFragment ) return (Element)n.getChildNodes().item(0); // if the result object contains something strange, // it is not a user problem, but it is a JAXB provider's problem. // That's why we throw a runtime exception. throw new IllegalStateException(n.toString()); }
import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; import javax.xml.transform.dom.*; import java.io.*; import org.w3c.dom.*; public class XmlTransform { public static void main(String[] args) throws Exception { File xsl = new File("1.xsl"); File xml = new File("1.xml"); DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document document = db.newDocument(); DOMSource input = new DOMSource(db.parse(xml)); // StreamResult output = new StreamResult(System.out); //That works but its not what I want! DOMResult output = new DOMResult(document); //that gives the null pointer exception TransformerFactory.newInstance().newTransformer(new StreamSource(xsl)).transform(input, output); System.out.println("getNode().getLocalName()=" + output.getNode().getLocalName()); System.out.println("((Document)getNode()).getDocumentElement().getLocalName()=" + ((Document)output.getNode()).getDocumentElement().getLocalName()); Node n = ((Document)output.getNode()).getDocumentElement(); System.out.println("n.hasChildNodes()=" + n.hasChildNodes()); System.out.println("Beatles=" + n.getChildNodes().getLength()); } }
public void testEncode() throws Exception { Ows10Factory f = Ows10Factory.eINSTANCE; GetCapabilitiesType caps = f.createGetCapabilitiesType(); AcceptVersionsType versions = f.createAcceptVersionsType(); caps.setAcceptVersions(versions); versions.getVersion().add("1.0.0"); versions.getVersion().add("1.1.0"); ByteArrayOutputStream output = new ByteArrayOutputStream(); response.write(caps, output, null); Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); TransformerFactory.newInstance() .newTransformer() .transform( new StreamSource(new ByteArrayInputStream(output.toByteArray())), new DOMResult(d)); assertEquals("ows:GetCapabilities", d.getDocumentElement().getNodeName()); assertEquals(2, d.getElementsByTagName("ows:Version").getLength()); } }
@Test public void whitespace() throws Exception { String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><test><node1> </node1><node2> Some text </node2></test>"; Transformer transformer = TransformerFactory.newInstance().newTransformer(); AbstractStaxXMLReader staxXmlReader = createStaxXmlReader( new ByteArrayInputStream(xml.getBytes("UTF-8"))); SAXSource source = new SAXSource(staxXmlReader, new InputSource()); DOMResult result = new DOMResult(); transformer.transform(source, result); Node node1 = result.getNode().getFirstChild().getFirstChild(); assertEquals(" ", node1.getTextContent()); assertEquals(" Some text ", node1.getNextSibling().getTextContent()); }
tfactory = TransformerFactory.newInstance(); tfactory.setErrorListener(new DefaultErrorHandler(false)); argv[++i], ObjectFactory.findClassLoader(), true); tfactory.setURIResolver(uriResolver); Node xslDOM = docBuilder.parse(new InputSource(xslFileName)); stylesheet = tfactory.newTemplates(new DOMSource(xslDOM, xslFileName)); stylesheet = tfactory.newTemplates(new StreamSource(xslFileName)); stf.getAssociatedStylesheet(new StreamSource(inFileName), media, null, null); transformer.setErrorListener(new DefaultErrorHandler(false)); transformer.setOutputProperty(OutputKeys.METHOD, outputType); transformer.transform(new DOMSource(xmlDoc, inFileName), new DOMResult(outNode)); serializer.transform(new DOMSource(outNode), result); transformer.transform(new StreamSource(inFileName), result);
public MaryData process(MaryData d) throws Exception { DOMSource domSource = new DOMSource(d.getDocument()); Transformer transformer = stylesheet.newTransformer(); // Log transformation errors to client: if (doWarnClient) { // Use custom error handler: transformer.setErrorListener(new LoggingErrorHandler(Thread.currentThread().getName() + " client.Sable transformer")); } // Transform DOMSource into a DOMResult Document maryxmlDocument = docBuilder.newDocument(); DOMResult domResult = new DOMResult(maryxmlDocument); transformer.transform(domSource, domResult); MaryData result = new MaryData(outputType(), d.getLocale()); result.setDocument(maryxmlDocument); return result; } }
@Test public void testXSpec() throws TransformerException, ParserConfigurationException { final DOMResult stylesheet = new DOMResult(); compiler.transform(new StreamSource(xspec), stylesheet); final Transformer compiledXspec = transformerFactory.newTransformer(new DOMSource(stylesheet.getNode())); final DOMResult results = new DOMResult(); compiledXspec.transform(new DOMSource(DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument()), results); final NodeList tests = ((Document) results.getNode()).getElementsByTagNameNS(XSPEC_NS, "test"); for (int i = 0; i < tests.getLength(); i++) { final Element test = (Element) tests.item(i); final boolean res = Boolean.parseBoolean(test.getAttribute("successful")) || test.getAttributeNode("pending") != null; if (!res) { final Element scenario = (Element) test.getParentNode(); final Node label = scenario.getElementsByTagNameNS(XSPEC_NS, "label").item(0).getFirstChild(); final String act = ((Element) scenario.getElementsByTagNameNS(XSPEC_NS, "result").item(0)).getAttribute("select"); final String exp = ((Element) test.getElementsByTagNameNS(XSPEC_NS, "expect").item(0)).getAttribute("select"); assertEquals(label != null ? label.getTextContent() : null, exp, act); } } }
emotionmlChecker.validate(emotionml); DOMSource domSource = new DOMSource(emotionml); transformer.setErrorListener(new LoggingErrorHandler(Thread.currentThread().getName() + " client.EmotionML transformer")); transformer.setParameter("voice", d.getDefaultVoice().getName()); DOMResult domResult = new DOMResult(maryxmlDocument); transformer.transform(domSource, domResult); maryxmlDocument.getDocumentElement().setAttribute("xml:lang", MaryUtils.locale2xmllang(d.getLocale()));
xmls.getTransformer().setOutputProperties(outputProps); xmls.getTransformer().setOutputProperty(OutputKeys.METHOD, "xml"); xmls.setResult(new StreamResult(out)); DOMResult result = new DOMResult(); Transformer tx = TransformerFactory.newInstance().newTransformer(); tx.transform(new StreamSource(in), result); Document d = (Document) result.getNode(); return d;
TransformerFactory transformfactory = TransformerFactory.newInstance(); Templates xsl = transformfactory.newTemplates(new StreamSource(new FileInputStream((String)m_XslFile))); Transformer transformer = xsl.newTransformer(); Document newdoc = docbuilder.newDocument(); Result XmlResult = new DOMResult(newdoc); // now transform transformer.transform( new DOMSource(doc.getDocumentElement()), XmlResult);
Templates stylesheet = tfactory.newTemplates(new DOMSource(xslDOM)); Transformer transformer = stylesheet.newTransformer(); if (namevalueParameters != null) { String value = namevalueParameters[i][1]; transformer.setParameter(name, value); DOMResult domResult = new DOMResult(); transformer.transform(new DOMSource(inDoc, null), domResult); return domResult.getNode();
((StreamSource)source).getInputStream()==null && ((StreamSource)source).getReader()==null)|| (source instanceof SAXSource && ((SAXSource)source).getInputSource()==null && ((SAXSource)source).getXMLReader()==null )|| (source instanceof DOMSource && ((DOMSource)source).getNode()==null)){ try { DocumentBuilderFactory builderF = DocumentBuilder builder = builderF.newDocumentBuilder(); String systemID = source.getSystemId(); source = new DOMSource(builder.newDocument()); outputNode = ((DOMResult) outputTarget).getNode(); org.w3c.dom.Node nextSibling = ((DOMResult)outputTarget).getNextSibling(); type = outputNode.getNodeType(); doc = (org.w3c.dom.Node.DOCUMENT_NODE == type) ? (org.w3c.dom.Document) outputNode : outputNode.getOwnerDocument(); doc = org.apache.xml.utils.DOMHelper.createDocument(isSecureProcessing); outputNode = doc; type = outputNode.getNodeType(); ((DOMResult) outputTarget).setNode(outputNode);
private void performTransform(Element element, Element transRes, Document ownerDoc) throws TransformerException { Transformer transformer = xslTemplate.newTransformer(); if (element == ownerDoc.getDocumentElement()) { transformer.transform(new DOMSource(ownerDoc), new DOMResult(transRes)); } else { transformer.transform(new DOMSource(element), new DOMResult(transRes)); } }
static @NonNull DOMSource transformSource(final Source source) throws TransformerException { final DOMResult result = new DOMResult(); TRANSFORMER_FACTORY.newTransformer().transform(source, result); return new DOMSource(result.getNode(), result.getSystemId()); }
DOMResult result = new DOMResult(); XmlUtils.transform(new DOMSource(el), mcPreprocessorXslt, null, result); org.w3c.dom.Document doc = (org.w3c.dom.Document) result.getNode(); el = doc.getDocumentElement(); } catch (Exception e) { throw new JAXBException("Preprocessing exception", e); DOMResult result = new DOMResult(); Templates mcPreprocessorXslt = JaxbValidationEventHandler .getMcPreprocessor(); XmlUtils.transform(doc, mcPreprocessorXslt, null, result); doc = (org.w3c.dom.Document) result.getNode(); jaxbElement = (E) XmlUtils.unwrap(binder.unmarshal(doc)); } catch (ClassCastException cce) {
private Document transformDocument(Document documentPayload, Transformer transformer) throws TransformerException { Source source; if (this.alwaysUseSourceFactory) { source = this.sourceFactory.createSource(documentPayload); } else { source = new DOMSource(documentPayload); } Result result = getResultFactory().createResult(documentPayload); if (!DOMResult.class.isAssignableFrom(result.getClass())) { throw new MessagingException( "Document to Document conversion requires a DOMResult-producing ResultFactory implementation."); } DOMResult domResult = (DOMResult) result; transformer.transform(source, domResult); return (Document) domResult.getNode(); }