加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML中CDATA及其字符实体的使用

发布时间:2020-12-16 02:03:39 所属栏目:百科 来源:网络整理
导读:在写xml文档时,偶尔会用到一些特殊字符,如、、等,如下面这段程序: ?xml version="1.0"? yif xz/y 在标签y/y中不能出现“”字符。否则会报错, 有两种方式可以解决此问题 一是用CDATA 先看一下CDATA的用法,如下所示就可以解决上面出现的问题。 y![CDATA[i
在写xml文档时,偶尔会用到一些特殊字符,如<、>、&等,如下面这段程序:
<?xml version="1.0"?>
<y>if x<z</y>
在标签<y></y>中不能出现“<”字符。否则会报错,
有两种方式可以解决此问题
一是用CDATA
先看一下CDATA的用法,如下所示就可以解决上面出现的问题。
<y><![CDATA[if x<z]]></y>
<FirstMenu>
<MenuName> <![CDATA[<扫描设置> ]]></MenuName>
<MenuImage>crawl.gif</MenuImage>
<MenuFocusImage>crawlf.gif</MenuFocusImage>
<Href>../../dbconfig/dbresource_list.action</Href>
<Target>mainFrame</Target>
<UrlFlag>01</UrlFlag>
</FirstMenu>
但是如果程序像下面这样,
<y> <![CDATA[if x<z ]]>]]></y>
会报错,切记在一个CDATA中不能出现"]]>"字符串。
如果必须输入 "]]>"字符串的话可以按下面这样解决,将此字符串分为两部分。
<y> <![CDATA[if x<z ]]]]> <![CDATA[>]]> </y>
二是用字符实体
当然也可以用字符实体来替代符号解决前面的问题
比如:
<y>if x &lt; z/y>
用字符实体&it;来替代"<"符号。
在编写xml文档时, 标签的属性中如果出现了字符问题,不能使用CDATA解决,只能用字符实体替代符号
如:
<x name='a"'c'></x><!--这段代码会出现问题-->
可以将上面标签中的符号用字符实体替代。
如下:<x name="a&quot;&apos;c"></x>
/**
     * 
     * @Title: filterXmlChar
    
     * @Description: TODO(解决 '<' 和 '&' 特殊字符的问题)
    
     * @param str
     * @return String
     */
    private static String filterXmlChar(String str) {
        String retstr = "";
        if (notEmpty(str)) {
            retstr = str.replaceAll("<","&lt;")
                        .replaceAll(">","&gt;")
                        .replaceAll("&","&amp;")
                        .replaceAll("'","&apos;")
                        .replaceAll(""","&quot;");
        }
        return retstr;
    }    

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读