继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

通过 DOM 方式生成 XML 文档课后练习

毕竟圣徒
关注TA
已关注
手记 1
粉丝 1
获赞 3

在课程源代码上修改既可。可以看到生成xml的流程:创建节点名(.createElement),传入节点值(.setTextContent),将子节点添加到根节点(.appendChild)

   /**
     * 生成xml
     */
    public void createXML() {
        DocumentBuilder db = getDocumentBuilder();
        Document document = db.newDocument();
        document.setXmlStandalone(true);
        Element bookstore = document.createElement("bookStore");

        // 向bookstore根节点添加子节点book,第一本书
        Element book = document.createElement("book");
        Element name = document.createElement("name");
        Element author = document.createElement("author");
        Element year = document.createElement("year");
        Element price = document.createElement("price");
        name.setTextContent("冰与火之歌");
        author.setTextContent("乔治马丁");
        year.setTextContent("2014");
        price.setTextContent("89");
        book.appendChild(name);
        book.appendChild(author);
        book.appendChild(year);
        book.appendChild(price);
        book.setAttribute("id", "1");
        // 将第一本书book节点加到bookstore根节点
        bookstore.appendChild(book);

        // 向bookstore根节点添加子节点book,第二本书
        Element book1 = document.createElement("book");
        Element name1 = document.createElement("name");
        Element author1 = document.createElement("author");
        Element year1 = document.createElement("year");
        Element price1 = document.createElement("price");
        Element language = document.createElement("language");
        name1.setTextContent("安徒生童话");
        author1.setTextContent("安徒生");
        year1.setTextContent("2004");
        price1.setTextContent("77");
        language.setTextContent("English");
        book1.appendChild(name1);
        book1.appendChild(author1);
        book1.appendChild(year1);
        book1.appendChild(price1);
        book1.appendChild(language);
        book1.setAttribute("id", "2");
        // 将第二本书book节点加到bookstore根节点
        bookstore.appendChild(book1);

        // 将bookstore节点(已包含book节点)添加到dom树中
        document.appendChild(bookstore);

        // 创建TransformerFactory对象
        TransformerFactory tff = TransformerFactory.newInstance();
        try {
            // 创建Transformer对象
            Transformer tf = tff.newTransformer();
            tf.setOutputProperty(OutputKeys.INDENT, "yes");
            tf.transform(new DOMSource(document), new StreamResult(new File("books1.xml")));
        } catch (TransformerConfigurationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TransformerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP