Xml文档上的XmlSerializer崩溃
我从XmlReader中提取了以下节点:Xml文档上的XmlSerializer崩溃,xml,string,serialization,Xml,String,Serialization,我从XmlReader中提取了以下节点: string xml = "<FeatureType xmlns=\"http://www.opengis.net/wfs\" > </FeatureType>" string xml=“” 为了反序列化到预定义类,我尝试: using (StringReader elementReader = new StringReader("<?xml version='1.0'?>" + xml )) { // T
string xml = "<FeatureType xmlns=\"http://www.opengis.net/wfs\" > </FeatureType>"
string xml=“”
为了反序列化到预定义类,我尝试:
using (StringReader elementReader = new StringReader("<?xml version='1.0'?>" + xml ))
{
// TODO: Can data contract serializer be used?
XmlSerializer deserializer = serializers[typeof(FeatureType)];
featureTypes.Add((FeatureType)deserializer.Deserialize(elementReader));
}
使用(StringReader elementReader=new StringReader(“+xml))
{
//TODO:可以使用数据协定序列化程序吗?
XmlSerializer反序列化器=序列化器[typeof(FeatureType)];
添加((FeatureType)反序列化器。反序列化(elementReader));
}
反序列化时,XmlSerializer抛出异常,并显示以下消息:
"<FeatureType xmlns='http://www.opengis.net/wfs'> was not expected."
“不是预期的。”
如果删除名称空间声明,则可以反序列化。在不必进一步处理读取器输出的情况下,如何修复此问题?另外,为什么读取器在提取每个节点时要注入名称空间声明
TIA.为此类构造
XmlSerializer
时,请确保使用默认的XML命名空间:
XmlSerializer deserializer = new XmlSerializer(typeof(FeatureType),
"http://www.opengis.net/wfs");
这是XmlSerializer
的构造函数,它接受可选的第二个参数defaultNamespace
使用这种方法,您可以轻松地反序列化XML字符串,而不会出现任何问题。您可以在问题中发布XML变量的内容吗?