我们有数千个数据写入XML文件&写数据我们使用XmlTextWriter。
我们可以在编写XML文件时解决一个问题,
写入属性时出错:无效的高代理字符(0xDC50)。高代理字符必须具有范围(0xD800 - 0xDBFF)的值。
作为错误解决方案:我们决定用空格替换有问题的数据..
但是,当WriterState出错时,XMLTextWriter不允许写任何内容。 (它说:状态为错误的Token StartAttribute会导致XML文档无效。)
以下是重置错误的示例代码:
XmlTextWriter writer = new XmlTextWriter(“C:\ employees.xml”,Encoding.UTF8); writer.WriteStartDocument(); writer.WriteStartElement( “雇员”);
try
{
string data = "뿿�� ";
writer.WriteAttributeString("Company", data);
}
catch (Exception ex)
{
//Here I Got Error For surrogate character
writer.WriteAttributeString("Company", "");//Trying To Write Again
}
有没有办法写入属性值,它会出现错误状态?
感谢。
答案 0 :(得分:0)
在将数据字符串添加到编写器之前检查数据字符串或使用CDATA块:http://msdn.microsoft.com/en-us/library/system.xml.xmltextwriter.writecdata.aspx