免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 8076 | 回复: 3
打印 上一主题 下一主题

xml中如何包含&等特殊字符? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-07-26 10:36 |只看该作者 |倒序浏览
5可用积分
<?xml version="1.0" encoding="UTF-8"?>
<doc id="1" header="you&me" />

以上xml包含 & 字符,用jdom 等解析时会提示错误,原因是&是xml的特殊字符. 请问如果我的xml中如何可以包含&字符?

最佳答案

查看完整内容

可以有两种解决方法:一、 通过Xml Document对象得到XML字符串返回给客户端,不能直接把XmlDocument返回给客户端,因为Java中的Xml Document对象,别的语言是无法正确解释的,我们只能返回XML 字符串:public String getAllNewSpace() { Document document = DocumentHelper.createDocument(); Element root=document.addElement("root"); ………………………… if (null != dataset) { ...

论坛徽章:
0
2 [报告]
发表于 2007-07-26 10:36 |只看该作者
可以有两种解决方法:
一、    通过Xml Document对象得到XML字符串返回给客户端,不能直接把XmlDocument返回给客户端,因为Java中的Xml Document对象,别的语言是无法正确解释的,我们只能返回XML 字符串:
public String getAllNewSpace() {
        Document document = DocumentHelper.createDocument();
        Element root=document.addElement("root");
        …………………………
            if (null != dataset) {
                while (dataset.next()) {
                    Element user=root.addElement("User");
                    Element userName=user.addElement("UserName");
                    userName.setText(dataset.getString(1));
                    Element userId=user.addElement("UserId");
                    userId.setText (dataset.getString(2));
                }
            }
        return document.asXML();
    }
二、    给XML 字符串添加DTD验证:在节点值部份添加“<![CDATA[   ]]”
public String getAllNewSpace() {
        StringBuffer toClient = new StringBuffer("<root>");
        …………………………
            if (null != dataset) {
                while (dataset.next()) {
                    toClient.append("<User>");
                    toClient.append("<UserName><![CDATA[");
                    toClient.append(dataset.getString(1));
                    toClient.append("]]</UserName>");
                    toClient.append("<UserId>");
                    toClient.append(dataset.getString(2));
                    toClient.append("</UserId>");
                    toClient.append("</User>");
                }
            }
        toClient.append("</root>");
        return toClient.toString();
    }

论坛徽章:
0
3 [报告]
发表于 2007-07-27 22:26 |只看该作者
  1. &amp;
复制代码
这串可以用来表示 &符号

[ 本帖最后由 tree135311 于 2007-7-27 22:58 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-08-01 16:11 |只看该作者
用cdata 可以解决所有的特殊字符. 当然楼上的&amp;可以,但只针对&这个字符
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP