问答详情
源自:3-1 SAX 生成 XML 的准备工作

dom方式如果要生成两本书,用for循环怎么做,id要不一样

dom方式如果要生成两本书,然后书的id要不一样,用for循环怎么做,属性值只能说固定值啊

提问者:慕盖茨907417 2017-12-29 15:18

个回答

  • 深度潜伏
    2018-01-04 14:46:37

    那个book.setAttribute("id", ""+i+1+"");你把i+1括号括起来就可以了!

  • 深度潜伏
    2018-01-04 14:44:48

    /**

    * 生成xml文件

    */

    public void creatXml(){

    DocumentBuilder db =getDocumentBuilder();

    Document document = db.newDocument();

    document.setXmlStandalone(true);

    //创建根节点

    Element bookstore = document.createElement("bookstore");

    for(int i = 0; i < 2; i++){

    //创建book子节点

    Element book = document.createElement("book");

    //创建name子节点

    Element name = document.createElement("name");

    //将name节点添加为book的子节点

    book.appendChild(name);

    //向name种添加文本属性

    name.setTextContent("小王子");

    //向子节点添加属性

    book.setAttribute("id", ""+i+1+"");

    //向根节点中添加book子节点

    bookstore.appendChild(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("books1.xml")); 

    } catch (TransformerConfigurationException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }catch (TransformerException e) {

    // TODO Auto-generated catch block

    e.printStackTrace();

    }

    }