XML特殊字符处理的一点心得

前台的xml的字符串处理:

1.  Xml的属性如通过node.setAttibute方法赋值,则通过TranferToXmlEntity自定义函数来转换xml中的特殊字符。

2.  Xml的属性如通过拼凑字符串的方式来赋值,则通过TranferToXmlEntity1自定义函数来转换xml中的特殊字符。

总之将传到后端aspx页面的xml属性值转换成如下格式:

<转化成<后台通过c#的Attribute方法转换成<存入数据库

>转化成>后台通过c#的Attribute方法转换成>存入数据库

‘转化成'后台通过c#的Attribute方法转换成'存入数据库

“转化成"后台通过c#的Attribute方法转换成"存入数据库

&转化成&后台通过c#的Attribute方法转换成&存入数据库

后台向前台组装xml时

a.  组装字符串方式,如:

              foreach(E_Organ d in iterator)

              {    strxml.Append("<OrganList  ");

                   strxml.Append("OrganId='");

                   strxml.Append(d.OrganId);

                   strxml.Append("' ");

                   strxml.Append("OrganName='");

                   strxml.Append(d.OrganName);

             strxml.Append("' ");

         ……

         }

Response.Write(strxml.ToString());

说明:

通过这种方式程序不用作改动。

     b.

1.  通过节点的OuterXml属性,如:

itembanknode.SetAttribute("ItemBankName",itembankname);

.....

Response.Write(xmldoc.DocumentElement.OuterXml)

说明:

通过这种方式会将文档中的(&)字符转换成(&),因此要作如下的转化:

Response.Write(xmldoc.DocumentElement.OuterXml.Replace("&","&"));



3.Xml节点的text值中如有特殊字符,则通过TranferToXmlEntity自定义函数来转换xml中的特殊字符

总之将传到后端aspx页面的xml节点的text值转换成如下格式:

<转化成<

>转化成>

‘转化成'

“转化成"

&转化成&

后台通过Node.innerXml将对上述的转义符作如下转换

<将不变存入数据库

>将不变存入数据库

'将转化成'存入数据库,(有点特殊)

"将转化成"存入数据库,(有点特殊)

&将不变存入数据库

后台向前台组装xml时,保持原有的数据库中的格式不变即可。

前端javascript通过node.text会要将转义符自动转换成他原有的格式。


[本日志由 techmango 于 2009-01-20 11:23 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: ID 随机
23
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.