我試圖反序列化這樣一個XML文件(它實際上是一個Maven POM但現在這並不重要......):如何使用的XmlSerializer來deserialise具有多個xlmns XML屬性
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
</project>
我有我已經用手定義的POM類:
[XmlRoot(Namespace= "http://maven.apache.org/POM/4.0.0")]
public class POM
{
[XmlElement("modelVersion")]
public string ModelVersion{ get; set; }
}
...和我的反序列化代碼:
FileStream fileStream = File.Open("pom.xml", FileMode.Open, FileAccess.Read, FileShare.Read);
var codec = new XmlSerializer(typeof(POM));
var pom = (POM) codec.Deserialize(fileStream);
當我運行這個時,我得到InvalidOperationException:'project xmlns =「http://maven.apache.org/POM/4.0.0」'不是預期的。
如何讓deserialzer處理額外的xmlns屬性和xsi:schemalocation?
當我刪除他們的代碼運行沒有錯誤。
謝謝,邁克爾
我不認爲這是多個namespsaces,我認爲這是你的類被稱爲POM和你的根節點被稱爲項目。 – 2012-02-20 10:40:34