当我在XML文件中序列化对象时,我得到了下面XML中在元素"Jobdesc“下提到的保留字符。
使用这些字符反序列化相同的xml文件会得到以下结果
Error:-System.InvalidOperationException was unhandled
问:要反序列化我做错了的object...what,我必须做些什么?
XML文件
<?xml version="1.0"?>
<DataCheck xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<JobList>
<Job>
<JobId>500</JobId>
<JobDate>1/1/2013</JobDate>
<Jobdesc>Test the app </Jobdesc>
</Job>
</JobList>
</DataCheck>
在C#中序列化代码
XmlSerializer ser = new XmlSerializer(typeof(DataCheck));
using (FileStream objFS = new FileStream(@"C:\\test.xml", FileMode.Create))
{
ser.Serialize(objFS, objDataCheck);
}
在C#中反序列化代码
DataCheck dc;
FileStream fs1 = new FileStream(@"C:\test.xml", FileMode.Open);
XmlSerializer xs = new XmlSerializer(typeof(DataCheck));
dc = (DataCheck)xs.Deserialize(fs1);
发布于 2013-08-01 00:22:46
这不是有效的XML。这些字符既不能作为实体引用(如
)出现在XML中,也不能作为实际字符出现。
此XML可以通过使用CDATA来使其有效:
<?xml version="1.0"?>
<DataCheck xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<JobList>
<Job>
<JobId>500</JobId>
<JobDate>1/1/2013</JobDate>
<Jobdesc><![CDATA[Test the app ]]></Jobdesc>
</Job>
</JobList>
</DataCheck>
发布于 2014-03-12 10:41:38
这些字符在XML1.1中是有效的,因此可以尝试更改文档类型,并希望解析器完全实现1.1
https://stackoverflow.com/questions/17983154
复制