Java examples for XML:XML Transform
Reads a XML file and do the transform
/* See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * Esri Inc. licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License./*ww w . j a v a2s . c o m*/ */ //package com.java2s; import java.io.StringWriter; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; public class Main { public static void main(String[] argv) throws Exception { String systemId = "java2s.com"; System.out.println(readFile(systemId)); } /** DEFAULT_ENCODING = "UTF-8" */ public static final String DEFAULT_ENCODING = "UTF-8"; /** DEFAULT_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" */ public static final String DEFAULT_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; /** * Reads a file. * @param systemId the system id * @return the content * @throws Exception if an exception occurs */ public static String readFile(String systemId) throws Exception { /* String s = new String(Files.readAllBytes(Paths.get(path)),"UTF-8"); if (s != null) s = s.trim(); return s; */ StringWriter result = new StringWriter(); transform(new StreamSource(systemId), new StreamResult(result), true); return checkResult(result, true); } /** * Executes a transformation. * <br>The output encoding is set to UTF-8 * @param source the transformation source * @param result the transformation result * @param indent if true, the output indent key is set to "yes" * @throws TransformerException if an exception occurs */ public static void transform(javax.xml.transform.Source source, javax.xml.transform.Result result, boolean indent) throws TransformerException { Transformer transformer = TransformerFactory.newInstance() .newTransformer(); transformer .setOutputProperty(OutputKeys.ENCODING, DEFAULT_ENCODING); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); if (indent) { transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty( "{http://xml.apache.org/xslt}indent-amount", "2"); } transformer.transform(source, result); } /** * Check a result. * @param result the result * @return the string (trimmed, null if empty) */ public static String checkResult(StringWriter result, boolean checkIndent) { String s = result.toString(); if (s != null) { s = s.trim(); if (checkIndent) { if (s.startsWith(DEFAULT_HEADER + "<")) { s = s.replace(DEFAULT_HEADER, DEFAULT_HEADER + "\r\n"); } } if (s.length() == 0) s = null; } ; return s; } }