生成XML出错

Kifile 2013-07-19 09:32:36
我在Struts2框架下,使用dom4j生成XML文件,但是,有一个文件生成时提示undefined,想请教一下原因。

我是在InputStream中放入我想要输出的字符流,,代码如下

xml=new ByteArrayInputStream(dom.asXML().getBytes());

try {
InputStreamReader r = new InputStreamReader(xml,"UTF-8");
StringBuffer sb=new StringBuffer();
int b;
while((b=r.read())!=-1 ){
if((char)b=='\n'){
sb.append("回车");
}else{
sb.append((char)b);
}
}
System.out.println(sb.toString());
} catch (Exception e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}


xml=new ByteArrayInputStream(dom.asXML().getBytes());


首先我在命令行上打印输出流,满足我的要求,然后当我直接查看网页上的输出时,发现最后两个标签间多了一个undefined,希望大家帮忙解释,解决一下


...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kifile 2013-07-19
  • 打赏
  • 举报
回复
刚重新测试了一下,知道了原因,XML对中文不完全支持,他元素的名字首字母不能为中文,否则报错,。,。。。。。靠。。。
Kifile 2013-07-19
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
undefined的意思是未定义。
是不是你输出的时候多输出了一个空的char
这样的话控制台是看不出来的,
但是编译的时候肯定会识别出来而添加了undefined?


我是使用的dom4j直接生成的document,应该不会出现那种多输出char的情况吧



如果我把上面的代码改成



也就是说只取集合中的一个元素的时候,能够正常输出
  • 打赏
  • 举报
回复
..你看看你生成的xml</热门动态>sss</magazines>这算 哪门子xml,显然是你上面字符串往xml写的时候没对</热门动态>进行处理,当成标签来写出去了。你可以用cdate把</热门动态>包起来..对标签内容比较特殊的处理一下
失落夏天 2013-07-19
  • 打赏
  • 举报
回复
undefined的意思是未定义。 是不是你输出的时候多输出了一个空的char 这样的话控制台是看不出来的, 但是编译的时候肯定会识别出来而添加了undefined?

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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