`

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());
 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    解析XML特殊字符方法

    XML(eXtensible Markup ...总结来说,理解并正确处理XML特殊字符是XML编程中的基础,也是保证数据正确传输和解析的关键。不论是手动编写XML文档,还是通过编程语言操作XML,都应确保特殊字符被适当地转义或编码。

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

    - **特殊字符**:XML文档中可能存在特殊字符,如`、`&gt;`、`&`等,这些在XML中具有特殊含义,需要正确转义。如果未正确处理,可能导致解析错误。 - **浏览器兼容性**:描述中提到的谷歌浏览器的XML解析问题可能是指...

    彻底根治Spring @ResponseBody JavaScript HTML特殊字符

    在开发Web应用时,我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,...

    JS xml转json

    ### JS XML转JSON知识点 #### 一、XML与JSON简介 - **XML(Extensible Markup Language)**: 可扩展标记语言,是一种用于标记数据的标记语言,主要用于存储和传输数据。XML具有良好的结构化特性,使得它非常适合...

    js下xml转json和json转xml

    在JavaScript(JS)环境中,XML(Extensible Markup Language)与JSON(JavaScript Object Notation)之间的转换是常见的数据处理任务。XML是一种结构化数据格式,常用于数据交换,而JSON则是轻量级的数据交换格式,...

    javascript加载xml文件和xml字符串的类

    在JavaScript中,处理XML数据是常见的任务,无论是从本地或远程服务器加载XML文件,或是解析XML字符串。XML(可扩展标记语言)作为一种结构化数据格式,广泛用于存储和传输数据。本篇文章将深入探讨如何使用...

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

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

    JavaScript操作XML(js XML).doc

    - **CDATA(Character Data)**:当数据包含HTML或其他XML无法识别的内容时,可以将其放在CDATA区内,以防止XML解析器解析这些特殊字符。例如,`&lt;![CDATA[这是我的照片的连接"&gt;这是我的照片]]&gt;`。 4. **创建和操作...

    Xml表格转化为Js对象

    1. **加载XML**:可以使用`DOMParser` API在浏览器环境中或者`xml2js`库在Node.js环境中解析XML字符串。 2. **遍历XML节点**:从根节点开始,递归地遍历所有子节点。对于元素节点,创建对应的JS对象;对于文本节点...

    javascript xml操作函数

    本文档将详细介绍一个自定义的JavaScript库,该库提供了一系列用于操作XML数据的方法,包括加载XML文件(同步和异步)、将字符串转换为XML文档等功能。 #### 二、XML操作函数库概览 该库包含三个主要方法:`XML....

    .net珍藏JS读写XML大全

    总的来说,这个".net珍藏JS读写XML大全"可能是对JavaScript在.NET环境中操作XML的一个综合资源,包含了读取XML、生成XML和处理XML节点的实例,同时也提示了在实际应用中需要考虑客户端与服务器端交互的问题。

    Javascript格式化并高亮xml字符串的方法及注意事项

    当使用DOMParser解析XML时,需要注意一些特殊字符可能会导致解析错误。例如,未转义的尖括号 `和 `&gt;` 或 ampersand `&` 等。因此,确保在输入XML字符串之前正确转义这些字符至关重要。 总的来说,通过DOMParser和...

    XML格式化函数(JS) + 解析XML文本为Doc函数

    在JavaScript中处理XML时,有时我们需要对XML字符串进行格式化,使其更易于阅读,或者将XML文本解析成DOM对象以便进一步操作。本篇将详细讲解如何在JavaScript中实现XML格式化函数和解析XML文本为DOM文档的功能。 ...

    tinyxml2解析和创建xml样例

    CDATA区段用于包含不受解析器解析的纯文本,特别适合包含特殊字符或JavaScript代码。 TinyXML2库提供了几个主要类,如`XMLDocument`、`XMLElement`、`XMLText`和`XMLComment`等,用于操作XML文档。我们先从解析XML...

    js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)

    JavaScript是一种广泛用于网页和网络应用的脚本语言,它能够处理和操作各种数据类型,包括XML(可扩展...同时,处理XML字符串和XML文档时,需要考虑如何正确访问和解析节点,以及处理浏览器可能引入的特殊字符或格式。

    将xml文件转换成csv格式

    同时,处理CSV文件中的特殊字符,如逗号、引号等,以符合CSV标准。 9. **自动化转换**:对于批量转换,可以编写脚本或程序,自动处理多个XML文件。可以设置参数,如输入目录、输出目录、列映射规则等。 10. **错误...

    Xml完全操作 XML增删改查

    创建XML时,需要遵循一定的规则,比如元素名必须是字母或下划线开头,且不能包含空格或特殊字符;属性值必须用引号包围;每个元素都必须有闭合标签,或者使用自闭合形式如 `&lt;element/&gt;`。 解析XML文档是获取其中...

    XML String 转成JSON

    4. 转换特殊字符:XML和JSON对特殊字符的处理方式不同。在JSON中,所有非ASCII字符和某些特殊字符(如双引号)都需要转义。因此,在转换过程中需要对XML字符串进行适当的转义操作。 5. 输出JSON字符串:最后,将...

    asp.net页面输入控件屏蔽特殊字符键盘输入

    在本例中,我们通过客户端脚本(JavaScript)的方式实现在用户输入特殊字符时即时阻止这些字符被录入。具体来说,当检测到用户试图输入一些预定义的特殊字符时,程序会通过禁用输入框的IME模式,并改变`keyCode`值来...

    XML之经典教学课件 PPT

    2. **XML命名规则**:如元素和属性名称必须遵循的命名规则,如首字符不能为数字,不能包含特殊字符等。 3. **XML文档类型定义(DTD)**:DTD是用于定义XML文档结构的一种方式,包括元素类型、属性列表等,确保文档...

Global site tag (gtag.js) - Google Analytics