2010-01-13 64 views
0

我提取從的XmlReader以下節點:XmlSerializer的拍擊xml文件

string xml = "<FeatureType xmlns=\"http://www.opengis.net/wfs\" > </FeatureType>" 

爲了反序列化到預定類中,我試圖:

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)); 
} 

在反序列化,XmlSerializer的投用一個異常以下消息:

"<FeatureType xmlns='http://www.opengis.net/wfs'> was not expected." 

如果我刪除命名空間聲明,我可以de連載。無需進一步操作讀者的輸出,我該如何解決這個問題?另外,爲什麼讀者在提取每個節點時注入名稱空間聲明?

TIA。

+0

你可以在你的問題中發佈xml變量的內容嗎? – 2010-01-13 03:51:24

回答

1

只要確保你使用默認XML命名空間,當你建立你的XmlSerializer該類:

XmlSerializer deserializer = new XmlSerializer(typeof(FeatureType), 
               "http://www.opengis.net/wfs"); 

這是一種帶有一個可選的第二個參數,defaultNamespaceXmlSerializer構造。

使用這種方法,您可以輕鬆地反序列化您的XML字符串,而無任何問題。

+0

就是這樣,謝謝。 – 2010-01-13 19:21:18

+0

+1是的,謝謝... – 2010-10-28 03:06:57