登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

HTML与XML转义字符  

2010-01-06 10:43:14|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

HTML<, >&等有特殊含义,(前两个字符用于链接签,&用于转义),不能直接使用。使用这三个字符时,应使用它们的转义序列,如下所示:

&amp; &#38;

&

&lt; &#60;

<

小于号

&gt; &#62;

>

大于号

&quot;

"

双引号

  

&nbsp;


空格

&copy;

?

版权符

&reg

?

注册符







  前者为字符转义序列,后者为数字转义序列。数字转为字符对应的ASCII码值。例如 & lt; font &gt;显示为,<font>,若直接写为则被认为是一个链接签。

  需要说明的是:

  a. 转义序列各字符间不能有空格;

  b. 转义序列必须以""结束;

  c. 单独的&不被认为是转义开始;

  d.区分大小写。

  另一个需要转义的字符是引号,它的转义序列为"" """"

  HTML使用的字符集是ISO &859 Larin-1字符集,该字符集中有许多标准键盘上无法输入的字符。对这些特殊字符只能使用转义序列。

  XML转义字符

  不合法的XML字符必须被替换为相应的实体。

  如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书写代码:

<message>if salary < 1000 then</message>

  为了避免出现这种情况,必须将字符"<" 转换成实体,像下面这样:

<message>if salary &lt; 1000 then</message>

  下面是五个在XML文档中预定义好的实体:

&lt;

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

  实体必须以符号"&"开头,以符号";"结尾。

  注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。


public static string ConvertXml(string xml)
{
    xml = (char)1 + xml;
    for (int intNext = 0; true; )
    {
        int intIndexOf = xml.IndexOf("&", intNext);
        intNext = intIndexOf + 1;
        if (intIndexOf <= 0)
            break;
        else
            xml = xml.Substring(0, intIndexOf) + "&amp;" + xml.Substring(intIndexOf + 1);
    }

    for (; true; )
    {
        int intIndexOf = xml.IndexOf("<");
        if (intIndexOf <= 0)
            break;
        else
            xml = xml.Substring(0, intIndexOf) + "&lt;" + xml.Substring(intIndexOf + 1);
    }

    for (; true; )
    {
        int intIndexOf = xml.IndexOf(">");
        if (intIndexOf <= 0)
            break;
        else
            xml = xml.Substring(0, intIndexOf) + "&gt;" + xml.Substring(intIndexOf + 1);
    }

    for (; true; )
    {
        int intIndexOf = xml.IndexOf("\"");
        if (intIndexOf <= 0)
            break;
        else
            xml = xml.Substring(0, intIndexOf) + "&quot;" + xml.Substring(intIndexOf + 1);
    }
    return xml.Replace(((char)1).ToString(), "");
}

  评论这张
 
阅读(1063)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018