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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器