`

JS处理xml特殊字符

阅读更多

本周使用cell表结合xmlhttp组件开发异步多行数据插入操作,遇到数据为&时发生xml解析错误

Reflector和google后发现
是由于特殊字符造成,需要进行处理:
<转化成&lt;
>转化成&gt;
‘转化成&apos;
“转化成&quot;
&转化成&amp;

在W3C的技术规范中,也可以看到这样的字符不允许出现:
http://www.w3.org/TR/2001/REC-xml-c14n-20010315

于是找了一个javascript的htmlEncode函数:

         HTMLEncode = function( text )
     {
    if ( typeof( text ) != "string" )
        text = text.toString() ;

     text = text.replace(
       /&/g, "&amp;").replace(
       /"/g, "&quot;").replace(
        /</g, "&lt;").replace(
        />/g, "&gt;") ;

     return text ;
     }

 问题解决,使用时:

前台js拼凑xml string:

        function GetString(iRow)
         {
                 s1 = HTMLEncode(form1.DCellWeb1.GetCellString(2,iCurrentRow,0)); 
                  s2 = HTMLEncode(form1.DCellWeb1.GetCellString(3,iCurrentRow,0));
                  s3 = HTMLEncode(form1.DCellWeb1.GetCellString(4,iCurrentRow,0));
                  s4 = HTMLEncode(form1.DCellWeb1.GetCellString(5,iCurrentRow,0));
           
            return "<xml version='1.0' encoding='GB2312'><data>"+
            "<s1>"+s1+"</s1>" +
            "<s2>"+s2+"</s2>" +
            "<s3>"+s3+"</s3>" +      
            "<s4>"+s4+"</s4>" +                
            "</data></xml>"   
         }
 

后台c#解析:

string sProjCode, sProjName, sUnitName, sManager, sDirectionCode;

         System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
         xDoc.Load(Request.InputStream);

         sProjCode = HttpUtility.HtmlDecode(xDoc.GetElementsByTagName("s1")[0].InnerText.Trim());
         sProjName = HttpUtility.HtmlDecode(xDoc.GetElementsByTagName("s2")[0].InnerText.Trim());
         sUnitName = HttpUtility.HtmlDecode(xDoc.GetElementsByTagName("s3")[0].InnerText.Trim());
         sManager = HttpUtility.HtmlDecode(xDoc.GetElementsByTagName("s4")[0].InnerText.Trim());
 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    js的XML解析器 可以解析XMl文件和XML字符串

    js的XML解析器可以解析基本的XML文档、XML字符串,对于有特殊字符的XML文档还存在BUG(谷歌浏览器不能使用)

    字符串内特殊字符在html_javascript_xml等内使用时的转换

    网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...

    如何处理JSON中的特殊字符

    JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换。由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相比不能生成文本的 API,能生成...

    xml详细中文帮助文档

    其中包括W3C的标准技术:HTML、XHTML、CSS、XML 。以及其他的技术,诸如JavaScript、PHP、ASP、SQL等等。 在线实例测试工具 在w3school,我们提供上千个实例。 通过使用我们的在线编辑器,你可以编辑这些例子,并...

    XML/(X)HTML 文本化工具

    使用浏览器运行,编解码XML/(X)HTML源代码中的特殊字符。采用面向对象设计,简单实用。只要保留原作者署名,代码可自由传播使用。 &lt;br&gt;使用Windows/IE可以直接编码XML/(X)HTML文件。 &lt;br&gt;作者:红鱼X...

    Jquery排序,row上下移动,用户名校验,js读取xml文档

    (1)jquery排序,table row上下移动,头行不能向上移动,尾行不能向下移动. (2)用户名验证包括长度,特殊字符等 (3)js读取xml文件的信息,用于错误信息的集中管理

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中...

    W3C JavaScript 高级教程.rar

    JS 特殊字符 JS 指导方针 JavaScript 对象 JS 对象简介 JS 字符串 JS 日期 JS 数组 JS 逻辑 JS 算数 JS RegExp JS HTML DOM JavaScript 高级 JS 浏览器 JS Cookies JS 验证 JS 动画...

    <编程高亮文本编辑器>Notepad2改良版(修复特殊字符崩溃BUG)

    在部分系统中, 使用文字高亮方案, 输入部分特殊字符程序会崩溃. 例如批处理高亮方案中,在文本输入“for %%”程序出错的现象. 【基本介绍】 这是一个用来取代 Notepad 的免费程序。绿色软件,安装完毕后只有一个主...

    js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例

    本文实例讲述了js常用方法、检查是否有特殊字符串、倒序截取字符串操作。分享给大家供大家参考,具体如下: js常用方法demo &lt;!DOCTYPE ...

    javascript完全学习手册1 源码

    7.2.4 特殊字符 160 7.2.5 字符匹配符 161 7.2.6 定位符 164 7.2.7 原义字符 167 7.3 RegExp对象 168 7.3.1 创建RegExp对象实例的 两种方式 168 7.3.2 RegExp对象的属性 170 7.3.3 RegExp对象的方法 173 7.4 String...

    javascript完全学习手册2 源码

    7.2.4 特殊字符 7.2.5 字符匹配符 7.2.6 定位符 7.2.7 原义字符 7.3 RegExp对象 7.3.1 创建RegExp对象实例的两种方式 7.3.2 RegExp对象的属性 7.3.3 RegExp对象的方法 7.4 String对象中与正则表达式...

    JavaScript征途

    JavaScript对象,数组,字符串,使用正则表达式操纵字符串,客户端,控制文档结构的模型,JavaScript事件驱动模型,CSS,Cookie,XML和JSON,Ajax,深入JavaScript面向对象编程,深入JavaScript函数式编程,深入...

    JavaScript王者归来part.1 总数2

     9.4 字符串与文本处理--JavaScript棋谱阅读器(一)   9.4.1 需求分析--什么是棋谱和棋谱阅读器   9.4.2 系统设计--棋谱和棋盘数据的字符串描述   9.4.3 系统实现--解析和处理棋谱   9.4.4 完整的棋谱阅读...

    js-word:文字处理文档库

    各种文字处理文档格式的解析器和编写器。 来自正式规范,相关文档和测试文件的Pure-JS无尘室实施。 强调解析和编写鲁棒性,具有统一JS表示形式的跨格式功能兼容性以及最大的浏览器兼容性。 测试文件 测试文件应放置...

    JavaScript详解(第2版)

    第1章 JavaScript简介 1 1.1 JavaScript是什么 1 1.2 JavaScript不是什么 2 1.3 JavaScript的用处 3 1.4 JavaScript及其在Web页面中的位置 3 1.5 Ajax是什么 5 1.6 JavaScript是什么样子的 6 1.7 ...

    程序天下:JavaScript实例自学手册

    3.9 判断编辑器中是否包含特殊字符 3.10 判断文本中回车的数量 3.11 判断字符串中有多少汉字 3.12 去除字符串的前后空格 3.13 刷新时清空所有文本框 3.14 随意改变大小的文本框 3.15 文本框的自动全选 3.16 文本框...

    前端助手FeHelper插件

    如果有特殊的情况,FeHelper插件甚至还可以帮助用户把普通的字符直接编码成时下最流行的二维码图片与移动设备交互。好吧,FeHelper的功能有: 字符串编解码(Unicode/UTF8/Base64/MD5) 代码美化工具...

    《程序天下:JavaScript实例自学手册》光盘源码

    3.9 判断编辑器中是否包含特殊字符 3.10 判断文本中回车的数量 3.11 判断字符串中有多少汉字 3.12 去除字符串的前后空格 3.13 刷新时清空所有文本框 3.14 随意改变大小的文本框 3.15 文本框的自动全选 3.16 文本框...

    《JavaScript征途》书稿实例

    数组,字符串,使用正则表达式操纵字符串,客户端,控制文档结构的模型,JavaScript事件驱动模型,CSS,Cookie,XML和JSON,Ajax,深入JavaScript面向对象编程,深入JavaScript函数式编程,深入JavaScript动态化编程...

Global site tag (gtag.js) - Google Analytics