sosxu110 2016-11-30 08:44 采纳率: 60%
浏览 4150
已采纳

xml 的document为null

报错提示为:Exception in thread "main" java.lang.IllegalArgumentException: Adding text to an XML document must not be null
以下为源码,还建立了一个users.xml文件
public class UserDao {
public static final String USER_XML = "users";
private Document ud;

public UserDao() {
    ud = XMLUtil.getUserDocument();
}

private void write(){
    XMLUtil.write2XML(ud, USER_XML);
}
public void add(User user){
    Element e = ud.getRootElement().addElement("user");
    e.addElement("username").addText(user.getUsername());
    e.addElement("password").addText(user.getPassword());
    e.addElement("nickname").addText(user.getNickname());
    write();
}

}

public class XMLUtil {
private static Document userDocument;

public static Document getUserDocument(){
    //如果document存在直接返回
    if(userDocument!=null) return userDocument;
    //如果不存在就创建对象
    try {
        SAXReader reader = new SAXReader();
        userDocument = reader.read(XMLUtil.class.getClassLoader().getResourceAsStream("xml/users.xml"));
        return userDocument;
    } catch (DocumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

public static void write2XML(Document d,String name){
    XMLWriter out = null;
    try {
        String path = XMLUtil.class.getClassLoader().getResource("xml/"+name+".xml").getPath();
        path = path.replace("bin","src");
        out = new XMLWriter(new FileWriter(path),OutputFormat.createPrettyPrint());
        out.write(d);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }finally{
        try {
            if(out!=null) out.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

}
public class TestUser {
private static UserDao ud = new UserDao();
public static void main(String[] args) {
testAdd();
}

public static void testAdd(){
    User u = new User();
    u.setNickname("张三");
    u.setPassword("123");
    u.setNickname("zhangsan");
    ud.add(u);
}

}

public class User {
private String username;
private String password;
private String nickname;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
}

这个是users.xml的代码
<?xml version="1.0" encoding="UTF-8"?>

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2016-11-30 14:48
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献