我在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,希望大家帮忙解释,解决一下
XMLInputStream

解决方案 »

  1.   

    undefined的意思是未定义。
    是不是你输出的时候多输出了一个空的char
    这样的话控制台是看不出来的,
    但是编译的时候肯定会识别出来而添加了undefined?
      

  2.   

    ..你看看你生成的xml</热门动态>sss</magazines>这算 哪门子xml,显然是你上面字符串往xml写的时候没对</热门动态>进行处理,当成标签来写出去了。你可以用cdate把</热门动态>包起来..对标签内容比较特殊的处理一下
      

  3.   


    我是使用的dom4j直接生成的document,应该不会出现那种多输出char的情况吧如果我把上面的代码改成也就是说只取集合中的一个元素的时候,能够正常输出
      

  4.   


    刚重新测试了一下,知道了原因,XML对中文不完全支持,他元素的名字首字母不能为中文,否则报错,。,。。靠