<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    甜咖啡

    我的IT空間

    DOM生成和解析XML文檔

    1.DOM生成和解析XML文檔


    為 XML 文檔的已解析版本定義了一組接口。解析器讀入整個文檔,然后構建一個駐留內存的樹結構,然后代碼就可以使用 DOM
    接口來操作這個樹結構。優點:整個文檔樹在內存中,便于操作;支持刪除、修改、重新排列等多種功能;缺點:將整個文檔調入內存(包括無用的節點),浪費時間和空間;使用場合:一旦解析了文檔還需多次訪問這些數據;硬件資源充足(內存、CPU)。

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    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;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    /**
    *
    * @author hongliang.dinghl
    * DOM生成與解析XML文檔
    */
    public class DomDemo implements XmlDocument {
    private Document document;
    private String fileName;
    public void init() {
    try {
    DocumentBuilderFactory factory = DocumentBuilderFactory
    .newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    this.document = builder.newDocument();
    } catch (ParserConfigurationException e) {
    System.out.println(e.getMessage());
    }
    }
    public void createXml(String fileName) {
    Element root = this.document.createElement("employees");
    this.document.appendChild(root);
    Element employee = this.document.createElement("employee");
    Element name = this.document.createElement("name");
    name.appendChild(this.document.createTextNode("丁宏亮"));
    employee.appendChild(name);
    Element sex = this.document.createElement("sex");
    sex.appendChild(this.document.createTextNode("m"));
    employee.appendChild(sex);
    Element age = this.document.createElement("age");
    age.appendChild(this.document.createTextNode("30"));
    employee.appendChild(age);
    root.appendChild(employee);
    TransformerFactory tf = TransformerFactory.newInstance();
    try {
    Transformer transformer = tf.newTransformer();
    DOMSource source = new DOMSource(document);
    transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");
    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
    PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
    StreamResult result = new StreamResult(pw);
    transformer.transform(source, result);
    System.out.println("生成XML文件成功!");
    } catch (TransformerConfigurationException e) {
    System.out.println(e.getMessage());
    } catch (IllegalArgumentException e) {
    System.out.println(e.getMessage());
    } catch (FileNotFoundException e) {
    System.out.println(e.getMessage());
    } catch (TransformerException e) {
    System.out.println(e.getMessage());
    }
    }
    public void parserXml(String fileName) {
    try {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    Document document = db.parse(fileName);
    NodeList employees = document.getChildNodes();
    for (int i = 0; i < employees.getLength(); i++) {
    Node employee = employees.item(i);
    NodeList employeeInfo = employee.getChildNodes();
    for (int j = 0; j < employeeInfo.getLength(); j++) {
    Node node = employeeInfo.item(j);
    NodeList employeeMeta = node.getChildNodes();
    for (int k = 0; k < employeeMeta.getLength(); k++) {
    System.out.println(employeeMeta.item(k).getNodeName()
    + ":" + employeeMeta.item(k).getTextContent());
    }
    }
    }
    System.out.println("解析完畢");
    } catch (FileNotFoundException e) {
    System.out.println(e.getMessage());
    } catch (ParserConfigurationException e) {
    System.out.println(e.getMessage());
    } catch (SAXException e) {
    System.out.println(e.getMessage());
    } catch (IOException e) {
    System.out.println(e.getMessage());
    }
    }
    }

    posted on 2011-07-19 16:12 甜咖啡 閱讀(303) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    <2011年7月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    統計

    常用鏈接

    留言簿(1)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: a级毛片免费在线观看| 亚洲国产精品午夜电影| 国产亚洲美女精品久久| 日韩一级免费视频| 亚洲A∨精品一区二区三区下载| 最近高清国语中文在线观看免费| 2020国产精品亚洲综合网| 国产精品免费观看久久| 亚洲人成网站999久久久综合| 大陆一级毛片免费视频观看| 亚洲AV无码专区在线电影成人| 四虎永久免费影院| 一级做a爰黑人又硬又粗免费看51社区国产精品视| 日韩a级毛片免费观看| 黄页网站在线视频免费| 久久精品国产亚洲5555| 免费精品一区二区三区第35| 亚洲高清无在码在线电影不卡| 国产精彩免费视频| 久久亚洲精品成人无码| 精品国产香蕉伊思人在线在线亚洲一区二区 | 亚洲一区二区三区写真| 免费人妻av无码专区| 一区二区三区免费电影| 亚洲国产精品自在线一区二区 | 777亚洲精品乱码久久久久久| 久久国产免费福利永久| 亚洲av无一区二区三区| 国产亚洲色婷婷久久99精品91| 午夜精品免费在线观看| 亚洲中文精品久久久久久不卡| 免费大黄网站在线看| 另类免费视频一区二区在线观看| 91精品国产亚洲爽啪在线观看| 午夜两性色视频免费网站| 黄 色一级 成 人网站免费| 亚洲成人黄色在线观看| mm1313亚洲精品国产| 114级毛片免费观看| 国产亚洲精品91| 亚洲色欲色欲综合网站|