String转换xml 问题

cs_bs 2008-09-06 10:06:17
SAXReader saxReader = new SAXReader();
Document document;
String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><dir><file preview=\"readonly\" name=\"yue\" value=\"最近一个月收益率前五名\" /><file preview=\"readonly\" name=\"jidu\" value=\"最近一个季度收益率前五名\" /></dir>";
try {
document = saxReader.read(new ByteArrayInputStream(str.getBytes()),"UTF-8");
Element incomingForm = document.getRootElement();
incomingForm.getName();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

这段代码老报一个字符编码的错 不知道怎么改 谢谢高人帮忙解决下!!
...全文
1008 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
RfidIot 2010-12-28
  • 打赏
  • 举报
回复
我咋看不到1楼写的啥?
dracularking 2008-09-10
  • 打赏
  • 举报
回复
解码已确定,编码试着不用默认呢
多试试几种编解码方式 再把错误放出
laorer 2008-09-10
  • 打赏
  • 举报
回复
我只知道dom4j会容易点,
li_589 2008-09-10
  • 打赏
  • 举报
回复
学习
椅子 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mayuanfei 的回复:]
你试试不选择字符集
document = saxReader.read(new ByteArrayInputStream(str.getBytes()));
[/Quote]


字符集转换有个说法,提交的编码是什么,接收就用什么


尤其是在跨平台应用时,一定要遵循上面的规则,两边同时调试
zjx2388 2008-09-09
  • 打赏
  • 举报
回复
一楼的方法给的很详细

学习
mayuanfei 2008-09-07
  • 打赏
  • 举报
回复
你试试不选择字符集
document = saxReader.read(new ByteArrayInputStream(str.getBytes()));
kokobox 2008-09-06
  • 打赏
  • 举报
回复

  一、使用最原始的javax.xml.parsers,标准的jdk api

// 字符串转XML
String xmlStr = \"......\";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(is);

//XML转字符串
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty(\"encoding\",\"GB23121\");//解决中文问题,试过用GBK不行
ByteArrayOutputStream bos = new ByteArrayOutputStream();
t.transform(new DOMSource(doc), new StreamResult(bos));
String xmlStr = bos.toString();

这里的XML DOCUMENT为org.w3c.dom.Document

  二、使用dom4j后程式变得更简单

// 字符串转XML
String xmlStr = \"......\";
Document document = DocumentHelper.parseText(xmlStr);

// XML转字符串
Document document = ...;
String text = document.asXML();

这里的XML DOCUMENT为org.dom4j.Document

  三、使用JDOM

JDOM的处理方式和第一种方法处理很类似

//字符串转XML
String xmlStr = \".....\";
StringReader sr = new StringReader(xmlStr);
InputSource is = new InputSource(sr);
Document doc = (new SAXBuilder()).build(is);

//XML转字符串
Format format = Format.getPrettyFormat();
format.setEncoding(\"gb2312\");//配置xml文档的字符为gb2312,解决中文问题
XMLOutputter xmlout = new XMLOutputter(format);
ByteArrayOutputStream bo = new ByteArrayOutputStream();
xmlout.output(doc,bo);
String xmlStr = bo.toString();

这里的XML DOCUMENT为org.jdom.Document

  四、JAVASCRIPT中的处理

//字符串转XML
var xmlStr = \".....\";
var xmlDoc = new ActiveXObject(\"Microsoft.XMLDOM\");
xmlDoc.async=false;
xmlDoc.loadXML(xmlStr);
//能够处理这个xmlDoc了
var name = xmlDoc.selectSingleNode(\"/person/name\");
alert(name.text);

//XML转字符串
var xmlDoc = ......;
var xmlStr = xmlDoc.xml

这里的XML DOCUMENT为javascript版的XMLDOM

62,615

社区成员

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

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