2015年06月10日 Java XML 浏览(418) 收藏

Java Dom如何格式化XML的代码实例

Java Dom如何格式化XML的代码如下:

public class XmlFormatTester {

	/**
	 * 将Dom 文档格式化并输出
	 * @param xmlDom
	 * @return
	 */
	public String format(String xmlDom) {
		try {
			final Document document = parseXmlFile(xmlDom);
			OutputFormat format = new OutputFormat(document);
			format.setLineWidth(80);
			format.setIndenting(true);
			format.setIndent(2);
			Writer out = new StringWriter();
			XMLSerializer serializer = new XMLSerializer(out, format);
			serializer.serialize(document);
			return out.toString();
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 使用Java Dom 将XML文件解析成DOM文档的方式
	 * @param in
	 * @return
	 */
	private Document parseXmlFile(String in) {
		try {
			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
			DocumentBuilder db = dbf.newDocumentBuilder();
			InputSource is = new InputSource(new StringReader(in));
			return db.parse(is);
		} catch (ParserConfigurationException e) {
			throw new RuntimeException(e);
		} catch (SAXException e) {
			throw new RuntimeException(e);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}
	
	public static void main(String[] args) throws Exception {
		// 等待格式化的XML
		String s = "张三男18李四女17";
		// 格式化结果
		System.out.println(new XmlFormatTester().format(s));

	}

Java Dom格式化XML的执行结果如下:

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <student group="1" id="1">
    <name>张三</name>
    <sex>男</sex>
    <age>18</age>
  </student>
  <student group="2" id="2">
    <name>李四</name>
    <sex>女</sex>
    <age>17</age>
  </student>
</root>


赞一下 0 人赞了本文