我在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
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
是不是你输出的时候多输出了一个空的char
这样的话控制台是看不出来的,
但是编译的时候肯定会识别出来而添加了undefined?
我是使用的dom4j直接生成的document,应该不会出现那种多输出char的情况吧如果我把上面的代码改成也就是说只取集合中的一个元素的时候,能够正常输出
刚重新测试了一下,知道了原因,XML对中文不完全支持,他元素的名字首字母不能为中文,否则报错,。,。。靠