JAVA xml 中文读写

lqsmn613 2009-11-06 05:01:23
RT.写好像可以写进去,但是读的时候说有中文的那行报空指针,咋办?
创建XML的时候:

File file1 = new File("./calendar");
if (file1.exists()) {
} else {
file1.mkdir();
}
File file2 = new File("./calendar/owner");
if (file2.exists()) {
} else {
file2.mkdir();
}

Document doc = DocumentHelper.createDocument();

Element usersElement = doc.addElement("users");

usersElement.addComment("users's secret!!!");// 添加注释

// catalogElement.addProcessingInstruction("target", "text");

Element userElement = usersElement.addElement("user");

Element nameElement = userElement.addElement("name");

nameElement.setText("qq");

Element pwdElement = userElement.addElement("password");

pwdElement.setText("qq11");

Element first_nameElement = userElement.addElement("first_name");

first_nameElement.setText("留影");

try {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");

XMLWriter output = new XMLWriter(new FileWriter(new File(
"./calendar/owner/owner_user.xml")), format);
output.write(doc);
output.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}


读取XML的时候:

File file = new File("./calendar/owner/owner_user.xml");
if (file.exists()) {
try {
SAXReader saxReader = new SAXReader();
Document doc = saxReader.read(new File(
"./calendar/owner/owner_user.xml"));
Element root = doc.getRootElement();
Element user_el = root.element("user");
Element name_el = user_el.element("name");
Element pwd_el = user_el.element("password");
Element first_name_el = user_el.element("first_anme");
String name = name_el.getText();
String pwd = pwd_el.getText();
String first_name = first_name_el.getText();
System.out.println(name);
System.out.println(pwd);
System.out.println(first_name);
// List list_name = doc.selectNodes("/users//user/name");
// List list_pwd = doc.selectNodes("/users//user/password");
// for (int i = 0; i < list_name.size(); i++) {
// Element name_el = (Element) list_name.get(i);
// String name = name_el.getText();
// if ("yy88".equals(name)) {
// Element pwd_el = (Element) list_pwd.get(i);
// System.out.println(pwd_el.getText());
// }
// }
} catch (DocumentException e) {
e.printStackTrace();
}
}
...全文
241 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lqsmn613 2009-11-07
  • 打赏
  • 举报
回复
中文乱码的问题,是创建的时候有错误:
XMLWriter output = new XMLWriter(new FileWriter(new File(
"./calendar/owner/owner_user.xml")), format);
这行代码在没有中文的时候没错,但是有中文的时候就要改一下了:
XMLWriter output = new XMLWriter(new FileOutputStream(new File(
"./calendar/owner/owner_user.xml")), format);

lqsmn613 2009-11-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yellow0323 的回复:]
帮顶一下
[/Quote]
多谢,还有谁?问题自己已经解决,中午结贴。
帮顶的有分!
yellow0323 2009-11-07
  • 打赏
  • 举报
回复
帮顶一下
lqsmn613 2009-11-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lqsmn613 的回复:]
读XML的时候,到这行String first_name = first_name_el.getText();【这行的数据是中文的】的时候,就报错:
Exception in thread "main" java.lang.NullPointerException
这个中文的问题怎么解决???
[/Quote]
这个问题是我有个属性名写错了,但是中文的情况还是不对,读取中文出现的是乱码??
我想可能是创建的时候,写入中文的时候没写对,不知道为什么???大家帮忙看看啊!!!
会的捧个技术场,没的捧个人场,顶上去啊!!!
lqsmn613 2009-11-07
  • 打赏
  • 举报
回复
读XML的时候,到这行String first_name = first_name_el.getText();【这行的数据是中文的】的时候,就报错:
Exception in thread "main" java.lang.NullPointerException
这个中文的问题怎么解决???
jara123004 2009-11-07
  • 打赏
  • 举报
回复
帮顶的来啦!!!
lqsmn704 2009-11-07
  • 打赏
  • 举报
回复
ding!!!!!!!!!!!!!!!!!!!

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧