<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)

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成电影网站久久| 亚洲成AV人片在线观看ww| 亚洲国产成人资源在线软件| 亚洲乱码无码永久不卡在线 | 国产无遮挡色视频免费观看性色 | 亚洲三级视频在线| 免费无码中文字幕A级毛片| 久久久久久久久免费看无码| 亚洲精品一级无码中文字幕| 亚洲av日韩av不卡在线观看| 亚洲中文字幕无码av| 成年女人免费v片| 亚洲人精品午夜射精日韩| 久久精品免费网站网| 亚洲色精品88色婷婷七月丁香| j8又粗又长又硬又爽免费视频| 人成午夜免费视频在线观看| 精品国产亚洲一区二区在线观看| 亚洲天堂一区在线| a国产成人免费视频| 亚洲AV色香蕉一区二区| 天天影院成人免费观看| 亚洲中字慕日产2020| 国产日产成人免费视频在线观看| 亚洲经典在线中文字幕| 久久国内免费视频| 美女免费视频一区二区三区| 亚洲伊人成无码综合网 | 亚洲2022国产成人精品无码区| 日韩插啊免费视频在线观看 | 亚洲国产激情一区二区三区| 在线观看特色大片免费网站| 久久精品国产亚洲av水果派| 国产精品免费一区二区三区| 亚洲国产精品无码久久久不卡| 99re免费在线视频| 性色av极品无码专区亚洲| 亚洲成A人片777777| 大地资源二在线观看免费高清| 免费无遮挡无遮羞在线看| 国产免费怕怕免费视频观看|