本周使用cell表结合xmlhttp组件开发异步多行数据插入操作,遇到数据为&时发生xml解析错误
Reflector和google后发现 是由于特殊字符造成,需要进行处理: <转化成< >转化成> ‘转化成' “转化成" &转化成&
在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, "&").replace(
/"/g, """).replace(
/</g, "<").replace(
/>/g, ">") ;
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(eXtensible Markup ...总结来说,理解并正确处理XML特殊字符是XML编程中的基础,也是保证数据正确传输和解析的关键。不论是手动编写XML文档,还是通过编程语言操作XML,都应确保特殊字符被适当地转义或编码。
- **特殊字符**:XML文档中可能存在特殊字符,如`、`>`、`&`等,这些在XML中具有特殊含义,需要正确转义。如果未正确处理,可能导致解析错误。 - **浏览器兼容性**:描述中提到的谷歌浏览器的XML解析问题可能是指...
在开发Web应用时,我们经常会遇到一个问题:当使用Spring MVC的`@ResponseBody`注解将后端处理结果直接转化为HTTP响应体时,如果这个结果中包含HTML特殊字符,如尖角号、引号、按位与符号等,浏览器可能会误解析,...
### JS XML转JSON知识点 #### 一、XML与JSON简介 - **XML(Extensible Markup Language)**: 可扩展标记语言,是一种用于标记数据的标记语言,主要用于存储和传输数据。XML具有良好的结构化特性,使得它非常适合...
在JavaScript(JS)环境中,XML(Extensible Markup Language)与JSON(JavaScript Object Notation)之间的转换是常见的数据处理任务。XML是一种结构化数据格式,常用于数据交换,而JSON则是轻量级的数据交换格式,...
在JavaScript中,处理XML数据是常见的任务,无论是从本地或远程服务器加载XML文件,或是解析XML字符串。XML(可扩展标记语言)作为一种结构化数据格式,广泛用于存储和传输数据。本篇文章将深入探讨如何使用...
网上有一个通用的转码组件,不仅可以转换javascript的,还可以转换html,xml等的特殊字符,许多帖子都转载了它。但是我对它进行了测试,发现有很多错误,或者是函数过期,或者是替换字符串写错,还有对javascript的...
- **CDATA(Character Data)**:当数据包含HTML或其他XML无法识别的内容时,可以将其放在CDATA区内,以防止XML解析器解析这些特殊字符。例如,`<![CDATA[这是我的照片的连接">这是我的照片]]>`。 4. **创建和操作...
1. **加载XML**:可以使用`DOMParser` API在浏览器环境中或者`xml2js`库在Node.js环境中解析XML字符串。 2. **遍历XML节点**:从根节点开始,递归地遍历所有子节点。对于元素节点,创建对应的JS对象;对于文本节点...
本文档将详细介绍一个自定义的JavaScript库,该库提供了一系列用于操作XML数据的方法,包括加载XML文件(同步和异步)、将字符串转换为XML文档等功能。 #### 二、XML操作函数库概览 该库包含三个主要方法:`XML....
总的来说,这个".net珍藏JS读写XML大全"可能是对JavaScript在.NET环境中操作XML的一个综合资源,包含了读取XML、生成XML和处理XML节点的实例,同时也提示了在实际应用中需要考虑客户端与服务器端交互的问题。
当使用DOMParser解析XML时,需要注意一些特殊字符可能会导致解析错误。例如,未转义的尖括号 `和 `>` 或 ampersand `&` 等。因此,确保在输入XML字符串之前正确转义这些字符至关重要。 总的来说,通过DOMParser和...
在JavaScript中处理XML时,有时我们需要对XML字符串进行格式化,使其更易于阅读,或者将XML文本解析成DOM对象以便进一步操作。本篇将详细讲解如何在JavaScript中实现XML格式化函数和解析XML文本为DOM文档的功能。 ...
CDATA区段用于包含不受解析器解析的纯文本,特别适合包含特殊字符或JavaScript代码。 TinyXML2库提供了几个主要类,如`XMLDocument`、`XMLElement`、`XMLText`和`XMLComment`等,用于操作XML文档。我们先从解析XML...
JavaScript是一种广泛用于网页和网络应用的脚本语言,它能够处理和操作各种数据类型,包括XML(可扩展...同时,处理XML字符串和XML文档时,需要考虑如何正确访问和解析节点,以及处理浏览器可能引入的特殊字符或格式。
同时,处理CSV文件中的特殊字符,如逗号、引号等,以符合CSV标准。 9. **自动化转换**:对于批量转换,可以编写脚本或程序,自动处理多个XML文件。可以设置参数,如输入目录、输出目录、列映射规则等。 10. **错误...
创建XML时,需要遵循一定的规则,比如元素名必须是字母或下划线开头,且不能包含空格或特殊字符;属性值必须用引号包围;每个元素都必须有闭合标签,或者使用自闭合形式如 `<element/>`。 解析XML文档是获取其中...
4. 转换特殊字符:XML和JSON对特殊字符的处理方式不同。在JSON中,所有非ASCII字符和某些特殊字符(如双引号)都需要转义。因此,在转换过程中需要对XML字符串进行适当的转义操作。 5. 输出JSON字符串:最后,将...
在本例中,我们通过客户端脚本(JavaScript)的方式实现在用户输入特殊字符时即时阻止这些字符被录入。具体来说,当检测到用户试图输入一些预定义的特殊字符时,程序会通过禁用输入框的IME模式,并改变`keyCode`值来...
2. **XML命名规则**:如元素和属性名称必须遵循的命名规则,如首字符不能为数字,不能包含特殊字符等。 3. **XML文档类型定义(DTD)**:DTD是用于定义XML文档结构的一种方式,包括元素类型、属性列表等,确保文档...