15 November 2016

XML DOM: Tìm kiếm node có product id = 1 và cập nhật giá (price) thêm 200, save vào file question_4.xml

Question_4
Update.java
Java XML 2016
package question_4;

import static controller.Document_DOM.getDocumentParse;
import static controller.SaveXML.saveXMLContent;
import org.w3c.dom.*;

/**
 *
 * @author Lonely
 */
public class Update {

    public void update(String id, int price, String path) {
        try {
            Document d = getDocumentParse("src\\Data\\products.xml");
            NodeList nList = d.getElementsByTagName("product");

            for (int i = 0; i < nList.getLength(); i++) {
                Node nNode = nList.item(i);

                if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                    //Find attribute
                    if (nNode.hasAttributes()) {

                        NamedNodeMap nMap = nNode.getAttributes();
                        for (int j = 0; j < nMap.getLength(); j++) {
                            Node node = nMap.item(j);
                            //Boolean attribute
                            if (node.getNodeValue().equalsIgnoreCase(id)) {

                                Element el = (Element) nList.item(i);
                                el.getElementsByTagName("price").item(0).setTextContent(Integer.toString(price + 12));
                                saveXMLContent(d, "src\\data\\"+path);
                                System.out.println("===QUESTION [4] Update price 200 thanh cong!");
                            }
                        }
                    }
                }

            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

}
Main.java

Java XML 2016

package run;

import question_1.CreateXML;
import question_2.ReadDOM;
import question_3.Add;
import question_4.Update;
/**
 *
 * @author Lonely
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        //1 Tạo file XML dùng DOM 
        CreateXML c = new CreateXML();
        c.create();

        //2 Đọc toàn bộ cấu trúc file XML (Hiển thị node gốc, các node con, value, attribute)
        ReadDOM r = new ReadDOM();
        r.Display();

        //3 Thêm một node có product id = 999, các thông tin khác (name, price, des, catalog) tùy chọn và save vào file question_3.xml
        Add s = new Add();
        s.Add("999", "question_3.xml");

        //4 Tìm kiếm node có product id = 1 và cập nhật giá (price) thêm 200
        Update u = new Update();
        u.update("1", 200, "question_4.xml");
    }
]
Run test
question_4.xml

0 nhận xét:

Post a Comment

 

BACK TO TOP

Xuống cuối trang