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

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

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

    xml——JAXP解析

    JAXP,即Sun 的 Java API for XML ,是Sun推出操作XML的一套API,所有 parser 器類作為 com.sun.xml.parser 包.

    image位于API文檔的javax.xml.parsers包中,如圖所示:

    重要的DocumentBuilderFactory XML解析工廠,靜態(tài)newInstance方法可得到一個

    工廠示例,通過實(shí)例調(diào)用newDocumentBuilder可得到文檔解析器DocumentBuilder的實(shí)例

    解析器通過parse方法得到Document 對象。Document 對象操作完成之后寫入到xml文件是

    image需要用到另外的幾個包 ,如左圖所示:

    通過TransformerFactory 調(diào)用newInstance得到一個工廠實(shí)例,工廠實(shí)例調(diào)用newTransformer

    得到轉(zhuǎn)換器,然后調(diào)用該轉(zhuǎn)換器的transform方法可將Document 對象寫入到xml文件

    下面是對xml實(shí)現(xiàn)CRUD的實(shí)例

    JaxpXMLUtil.java

    package com.braden.util;

    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    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;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;

    public class JaxpXMLUtil {
        String path 
    = "";

        
    public JaxpXMLUtil(String path) {
            
    this.path = path;
        }

        
    public Document getDocument() {
            DocumentBuilderFactory factory 
    = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder;
            Document document 
    = null;
            
    try {
                builder 
    = factory.newDocumentBuilder();
                document 
    = builder.parse(path);
            } 
    catch (Exception e) {
                
    throw new RuntimeException(e);
            }
            
    return document;

        }

        
    public boolean writeToXml(Document document, String path) {
            
    boolean flag = false;
            TransformerFactory tFactory 
    = TransformerFactory.newInstance();

            
    try {
                Transformer tf 
    = tFactory.newTransformer();
                
    if (path != null && path != "") {
                    tf.transform(
    new DOMSource(document), new StreamResult(
                            
    new File(path)));
                    flag 
    = true;
                } 
    else {
                    flag 
    = false;
                }
            } 
    catch (Exception e) {
                
    throw new RuntimeException(e);
            }
            
    return flag;
        }

        
    public String getId() {
            Document document 
    = this.getDocument();
            NodeList list 
    = document.getDocumentElement().getChildNodes();
            
    int id = 1;
            
    if (list != null) {
                
    int len = list.getLength();
                
    for (int i = 0; i < len; i++) {
                    Node node 
    = list.item(i);
                    
    if (node.getNodeType()==Node.ELEMENT_NODE) {
                        id
    ++;
                    }
                }
            }
            
    return id+"";
        }
    }

    UserDaoImpl.java
    
    
    
    package com.braden.impl;

    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.braden.dao.UserDao;
    import com.braden.domain.User;
    import com.braden.util.JaxpXMLUtil;

    public class UserDaoImpl implements UserDao {

        JaxpXMLUtil util 
    = null;

        
    public UserDaoImpl() {
            util 
    = new JaxpXMLUtil("src/user.xml");
        }

        
    public boolean delete(String id) {
            
    boolean flag = false;
            Document document 
    = util.getDocument();
            NodeList user_list 
    = document.getElementsByTagName("user");
            
    for (int i = 0; i < user_list.getLength(); i++) {
                Element e 
    = (Element) user_list.item(i);
                
    if (e.getAttribute("id").equals(id)) {
                    Node node 
    = user_list.item(i);
                    e.getParentNode().removeChild(node);
                    util.writeToXml(document, 
    "src/user.xml");
                    flag 
    = true;
                }
            }
            
    return flag;

        }

        
    public User find(String id) {
            Document document 
    = util.getDocument();
            NodeList user_list 
    = document.getElementsByTagName("user");
            User user 
    = null;
            
    for (int i = 0; i < user_list.getLength(); i++) {
                Element e 
    = (Element) user_list.item(i);
                
    if (e.getAttribute("id").equals(id)) {
                    user 
    = new User();
                    Node addressNode 
    = e.getElementsByTagName("address").item(0);
                    Node bitthdayNode 
    = e.getElementsByTagName("bitthday").item(0);
                    Node genderNode 
    = e.getElementsByTagName("gender").item(0);
                    Node usernameNode 
    = e.getElementsByTagName("username").item(0);
                    Node passwordNode 
    = e.getElementsByTagName("password").item(0);
                    user.setAddress(addressNode.getTextContent());
                    user.setBitthday(bitthdayNode.getTextContent());
                    user.setGender(genderNode.getTextContent());
                    user.setUsername(usernameNode.getTextContent());
                    user.setPassword(passwordNode.getTextContent());
                    
    break ;
                }
            }
            
    return user;
        }

        
    public boolean update(String id, String updateitem, String updateinfo) {
            
    boolean flag = false;
            Document document 
    = util.getDocument();
            NodeList user_list 
    = document.getElementsByTagName("user");
            
    for (int i = 0; i < user_list.getLength(); i++) {
                Element e 
    = (Element) user_list.item(i);
                
    if (e.getAttribute("id").equals(id)) {
                    NodeList user_child_List 
    = e.getChildNodes();
                    
    for (int j = 0; j < user_child_List.getLength(); j++) {
                        Node node_item 
    = user_child_List.item(j);
                        
    if (node_item.getNodeName().equals(updateitem)) {
                            
    if (!node_item.getTextContent().equals(updateinfo)) {
                                node_item.setTextContent(updateinfo);
                                util.writeToXml(document, 
    "src/user.xml");
                                flag 
    = true;
                            }

                        }
                    }
                }

            }

            
    return flag;
        }

        
    public boolean insert(User user) {

            Document document 
    = util.getDocument();
            
    /* System.out.println(document.getDocumentURI()); */
            Element node_user 
    = document.createElement("user");
            node_user.setAttribute(
    "id", user.getId());
            Element node_username 
    = document.createElement("username");
            node_username.setTextContent(user.getUsername());
            Element node_id 
    = document.createElement("id");
            node_id.setTextContent(user.getId());
            Element node_gender 
    = document.createElement("gender");
            node_gender.setTextContent(user.getGender());
            Element node_password 
    = document.createElement("password");
            node_password.setTextContent(user.getPassword());
            Element node_bitthday 
    = document.createElement("bitthday");
            node_bitthday.setTextContent(user.getBitthday());
            Element node_address 
    = document.createElement("address");
            node_address.setTextContent(user.getAddress());
            node_user.appendChild(node_username);
            node_user.appendChild(node_bitthday);
            node_user.appendChild(node_address);
            node_user.appendChild(node_gender);
            node_user.appendChild(node_password);
            document.getDocumentElement().appendChild(node_user);

            
    try {
                util.writeToXml(document, 
    "src/user.xml");
                
    return true;
            } 
    catch (Exception e) {
                
    throw new RuntimeException(e);
            }

        }

    }

    UserDaoImplTest.java
    
    
    package com.braden.junit;

    import java.io.IOException;
    import javax.xml.parsers.ParserConfigurationException;
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Test;
    import org.xml.sax.SAXException;
    import com.braden.dao.UserDao;
    import com.braden.domain.User;
    import com.braden.impl.UserDaoImpl;
    import com.braden.util.JaxpXMLUtil;

    public class UserDaoImplTest {
        
        
    static UserDao dao;
        
    static JaxpXMLUtil util;
        @BeforeClass
        
    public static void setUpBeforeClass() throws Exception {
            dao 
    = new UserDaoImpl();
            util 
    = new JaxpXMLUtil("src/user.xml");
        }

        @AfterClass
        
    public static void tearDownAfterClass() throws Exception {
        }

        @Before
        
    public void setUp() throws Exception {
            
        }

        @After
        
    public void tearDown() throws Exception {
        }

        @Test
        
    public void testDelete() {
            
                
    if (dao.delete("2")) {
                    System.out.println(
    "刪除成功");
                } 
    else {
                    System.out.println(
    "刪除失敗");
                } 
        }

        @Test
        
    public void testFind() {
            User user 
    = dao.find("2");
            
    if (user!=null) {
                System.out.println(user.getPassword());
            } 
    else {
                System.out.println(
    "用戶不存在");
            }
        }

        @Test
        
    public void testUpdate() {
            
    if(dao.update("2""password","lina")) {
                System.out.println(
    "更新成功");
            } 
    else {
                System.out.println(
    "更新失敗");
            }
        }

        @Test
        
    public void testInsert() throws SAXException, IOException, ParserConfigurationException {
            String id 
    =util.getId();
            User user 
    = new User();
            user.setAddress(
    "beijing"+id+"beijing");
            user.setBitthday(
    "1984-09-03");
            user.setId(id);
            user.setUsername(
    "braden_"+id);
            user.setGender(
    "female");
            user.setPassword(
    "123456");
            
    try {
                dao.insert(user);
                System.out.println(
    "user" + user.getId()+"添加成功!");
            } 
    catch (Exception e) {
                
    throw new RuntimeException(e);
            }
        }

    }

    User.java

    
    
    package com.braden.domain;

    public class User {
        
    private String username;
        
    private String id;
        
    private String bitthday;
        
    private String address;
        
    private String gender;
        
    private String password;
        
    public User() {
            
    super();
        }
        
    public User(String username, String id, String bitthday, String address,
                String gender, String password) {
            
    super();
            
    this.username = username;
            
    this.id = id;
            
    this.bitthday = bitthday;
            
    this.address = address;
            
    this.gender = gender;
            
    this.password = password;
        }
        
    public String getUsername() {
            
    return username;
        }
        
    public void setUsername(String username) {
            
    this.username = username;
        }
        
    public String getId() {
            
    return id;
        }
        
    public void setId(String id) {
            
    this.id = id;
        }
        
    public String getBitthday() {
            
    return bitthday;
        }
        
    public void setBitthday(String bitthday) {
            
    this.bitthday = bitthday;
        }
        
    public String getAddress() {
            
    return address;
        }
        
    public void setAddress(String address) {
            
    this.address = address;
        }
        
    public String getGender() {
            
    return gender;
        }
        
    public void setGender(String gender) {
            
    this.gender = gender;
        }
        
    public String getPassword() {
            
    return password;
        }
        
    public void setPassword(String password) {
            
    this.password = password;
        }
        
        
    }

    得到的xml文件

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><!-- <!DOCTYPE user PUBLIC "http://UNKNOWN/" "user.dtd"> -->
    <users>
    <user id="1">
    <username>braden_1</username>
    <bitthday>1984-09-03</bitthday>
    <address>beijing1beijing</address>
    <gender>female</gender>
    <password>123456</password>
    </user>
    <user id="2">
    <username>braden_2</username>
    <bitthday>1984-09-03</bitthday>
    <address>beijing2beijing</address>
    <gender>female</gender>
    <password>123456</password>
    </user>
    <user id="3">
    <username>braden_3</username>
    <bitthday>1984-09-03</bitthday>
    <address>beijing3beijing</address>
    <gender>female</gender>
    <password>123456</password>
    </user>
    </users>

    posted on 2010-04-22 22:15 braden 閱讀(1624) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    <2010年4月>
    28293031123
    45678910
    11121314151617
    18192021222324
    2526272829301
    2345678

    導(dǎo)航

    統(tǒng)計(jì)

    常用鏈接

    留言簿(1)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费精品久久天干天干| 亚洲国产a级视频| 免费在线观看一级片| 全部在线播放免费毛片| 亚洲精品亚洲人成在线播放| 亚洲综合久久夜AV | 青青草国产免费久久久91| 91精品国产免费久久国语蜜臀| 一级毛片免费视频网站| 亚洲日本VA中文字幕久久道具| 911精品国产亚洲日本美国韩国| 最新国产AV无码专区亚洲| 男人的天堂亚洲一区二区三区| 午夜视频在线免费观看| 日本一区午夜艳熟免费| 国产成人无码免费网站| 黄网站色视频免费看无下截| 亚洲高清一区二区三区电影| 亚洲另类春色校园小说| 亚洲黄色免费网址| 久久久无码精品亚洲日韩按摩 | 亚洲国产精品综合福利专区| 亚洲成av人在线视| 亚洲色偷偷综合亚洲AVYP| 亚洲美女在线国产| 无码不卡亚洲成?人片| 国产成人免费ā片在线观看| 青青青青青青久久久免费观看| 免费黄色大片网站| 在线免费观看污网站| 精品无码国产污污污免费| 青青青青青青久久久免费观看 | 亚洲av无码专区青青草原| 亚洲日韩精品无码专区加勒比 | 30岁的女人韩剧免费观看| 日韩免费高清大片在线| 久久国产精品成人片免费| 亚洲精品在线免费观看视频| 18未年禁止免费观看| 无码永久免费AV网站| 处破痛哭A√18成年片免费|