zoukankan      html  css  js  c++  java
  • JAVA读取XML并打印

    在G盘下新建XML文档:person.xml,XML代码:

    <?xml version="1.0" encoding="utf-8"?>
    
    <students> 
      <student id="1"> 
        <name>a</name>  
        <sex></sex>  
        <age>18</age> 
      </student>  
      <student id="2"> 
        <name>b</name>  
        <sex></sex>  
        <age>16</age> 
      </student> 
    </students>

     读取XML文件并打印,代码如下:

    package jichu;
    
    import java.io.StringWriter;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    
    public class XmlPrinter {
        public static String xmlPrintFromFileName(String FileName) {
            String xml = "";
            try {
                DocumentBuilderFactory factory = DocumentBuilderFactory
                        .newInstance();
                DocumentBuilder builder = factory.newDocumentBuilder();
                Document document = builder.parse(FileName);
                Source oldData = new DOMSource(document);
                StreamResult newData = new StreamResult(new StringWriter());
                Transformer transformer = TransformerFactory.newInstance()
                        .newTransformer();
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                transformer.setOutputProperty(
                        "{http://xml.apache.org/xslt}indent-amount", "2");
                transformer.transform(oldData, newData);
                xml = newData.getWriter().toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return xml;
        }
    }

    测试代码:

    package jichu;
    
    public class MainClass {
        public static void main(String[] args) {
            String xml = XmlPrinter.xmlPrintFromFileName("G:\person.xml");
            System.out.println(xml);
        }
    }

    打印:

    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <students> 
      <student id="1"> 
        <name>a</name>  
        <sex></sex>  
        <age>18</age> 
      </student>  
      <student id="2"> 
        <name>b</name>  
        <sex></sex>  
        <age>16</age> 
      </student> 
    </students>

    读取XML字符串,格式化后打印,代码如下:

    package jichu;
    
    import java.io.StringReader;
    import java.io.StringWriter;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
    
    public class XmlPrinter {
        public static String xmlPrintFromString(String xmlString) {
            String xml = "";
            try {
                StringReader reader = new StringReader(xmlString);
                Source oldData = new StreamSource(reader);
                StreamResult newData = new StreamResult(new StringWriter());
                Transformer transformer = TransformerFactory.newInstance()
                        .newTransformer();
                transformer.setOutputProperty(OutputKeys.INDENT, "yes");
                transformer.setOutputProperty(
                        "{http://xml.apache.org/xslt}indent-amount", "2");
                transformer.transform(oldData, newData);
                xml = newData.getWriter().toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return xml;
        }
    }

    测试:

    package jichu;
    
    public class MainClass {
        public static void main(String[] args) {
            String xml = "<a><b></b><c/><d>text</d></a>";
            System.out.println(XmlPrinter.xmlPrintFromString(xml));
        }
    }

    打印:

    <?xml version="1.0" encoding="UTF-8"?>
    <a>
      <b/>
      <c/>
      <d>text</d>
    </a>
  • 相关阅读:
    poj 1684 Lazy Math Instructor(字符串)
    STL内存配置器
    迭代器(iterators)
    类型萃取(type traits)
    hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包+dp)
    hdoj 1114 Piggy-Bank(完全背包+dp)
    hdoj 2546 饭卡(0-1背包)
    hdoj 2620 Bone Collector(0-1背包)
    U3d开发个人总结
    Android软键盘的用法总结
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6527161.html
Copyright © 2011-2022 走看看