C# 生成XML时的特殊字符出现异常处理
生成端处理
将要写入的值的前后写上如:"<![CDATA[" + string+ "]]>";
XmlNode xnformchild = doc.CreateNode(XmlNodeType.Element, dc.ColumnName.ToUpper(), "");
try
{
xnformchild.InnerXml = drform[dc.ColumnName].ToString();
xnform.AppendChild(xnformchild);
}
catch
{
xnformchild.InnerXml = "<!--[CDATA[" + drform[dc.ColumnName].ToString() + "]]-->";
xnform.AppendChild(xnformchild);
}
接收端处理将生成端写入的:"<![CDATA["和 "]]>"分别替换即可
string startCdata = "<!--[CDATA[";
string endCdata = "]]-->";
if (fieldValue.StartsWith(startCdata) && (fieldValue.EndsWith(endCdata)))
{
fieldValue = fieldValue.Replace(startCdata, "");
fieldValue = fieldValue.Replace(endCdata, "");
}
简单吧,这样就可以解决xml存取特殊字符出现异常的问题,当然你在生成端只在存
有特殊字符的地方加上就行了,其它地方的不用加
相关文档:
首先了解一下什么是Qname
下面是一篇写的比较好的关于Qname的介绍:
http://blog.csdn.net/fbysss/archive/2007/06/24/1664076.aspx
可见Qname主要是处理namesapce的,是指具有特定前缀的xml element。而且Qname就是QualifiedName的缩写,所以Qname在C#中对应的应该是XmlQualifiedName这个类 ......
xml
<mime>
<content>
<type>text/plain</type>
<big>357</big>
<text>D:\\cybercourttext2009101410241364.txt</text>
</content>
<content>
<type>text/plain</type>
<big>357</big>
<text>D:\\cybercourttext2009 ......
原文链接:http://www.cnblogs.com/ding0910/archive/2007/07/12/815407.html
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
using BX.Interface;
......
引用命名空间:using System.Xml
1.检查所要操作的xml文件是否存在:
System.IO.File.Exists(文件路径及名称);
2.得到xml文件:
(1)在asp.net中可以这样得到:
XmlDocument xmlDoc = new XmlDocument();
//导入xml文档
xmlDoc.Load( Server.MapPath("xmlTesting.xml"));
//导入字符串
/ ......