[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]xStream输出XML时,两个双下划的问题

上一篇:[转帖]JavaScript—在嵌套的内部函数中调用外部this的三种方法
下一篇:[备忘]freemarker输出数字,出现逗号的问题

添加日期:2017-11-6 12:53:58 快速返回   返回列表 阅读436次
xStream转换xml,bean的属性带下划线时,输出为xml时会变成两个下环线。

解决办法:
XStream xstream = new XStream(new DomDriver());
改成:
XStream xstream = new XStream(new DomDriver("UTF_8", new NoNameCoder()));

这样好像也行;
XStream xstream = new XStream(new DomDriver("UTF-8", new XmlFriendlyNameCoder("_-", "_")));

官方解释:
http://x-stream.github.io/faq.html#XML_double_underscores


XStream maps Java class names and field names to XML tags or attributes. Unfortunately this mapping cannot be 1:1, since some characters used for identifiers in Java are invalid in XML names. 

Therefore XStream uses an XmlFriendlyNameCoder to replace these characters with a replacement. By default this NameCoder uses an underscore as escape character and has therefore to escape the underscore itself also. 

You may provide a different configured instance of the XmlFriendlyNameCoder or a complete different implementation like the NoNameCoder to prevent name coding at all. However it is your responsibility then to ensure, that the resulting names are valid for XML.

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved