我想反序列化簡單的XML文件:反序列化的XML與內部陣列
<thesaurus xmlns="http://marklogic.com/xdmp/thesaurus">
<metadata>
</metadata>
<entry>
<term>a</term>
<synonym>
<term>as</term>
</synonym>
</entry>
<entry>
<term>b</term>
<synonym>
<term>bs</term>
</synonym>
<synonym>
<term>bss</term>
</synonym>
</entry>
</thesaurus>
我使用XmlSerializer的是這樣的:
var xmlSerializer = new XmlSerializer(typeof(Thesaurus));
var thesaurus = xmlSerializer.Deserialize(stream);
我的模型看起來是這樣的:
[Serializable]
[XmlRoot("thesaurus", Namespace = "http://marklogic.com/xdmp/thesaurus")]
public class Thesaurus
{
[XmlElement("metadata")]
public Metadata Metadata { get; set; }
[XmlElement("entry")]
public List<Entry> Entries { get; set; }
}
public class Metadata
{
}
public class Entry
{
[XmlElement("term")]
public string Term { get; set; }
[XmlElement("synonym")]
public String[] Synonym { get; set; }
}
因此,當我運行此代碼時,我使用解析的元數據獲取反序列化的同義詞庫對象,並且入口填充term
和synonym
字段。我無法獲得這裏的所有條目。
但
當我註釋掉Synonym
領域它開始給我的詞庫對象條目。我不能在<entries>
標籤中包裝條目,因爲它是我用這個XML文件提供的應用程序的一些內部格式。
任何人有任何想法如何正確解析這個XML文件?我試圖尋找解決方案,但這個xml看起來與例子中的很不一樣。
當您使用的XmlElement你需要一個新的類來獲取數據。所以你需要一個班級名詞和一個班級的同義詞。 – jdweng
@jdweng很顯然,我錯過了這裏的一個,因爲它將SOMEHOW反序列化的同義詞和SOMEHOW反序列化的同義詞/術語排列爲 – wudzik