【发布时间】:2018-09-03 10:53:08
【问题描述】:
我有一个如下所示的 XML 文件:
<Stamdata xmlns="http://schemas.datacontract.org/2004/07/a">
<Liste xmlns:d3p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
<d3p1:KeyValuePairOfStringDatagxNgnmsk>
<d3p1:key>key value</d3p1:key>
<d3p1:value>
......
</d3p1:value>
</d3p1:KeyValuePairOfStringDatagxNgnmsk>
</Liste>
</Stamdata>
我的任何模型看起来都像
[DataContract(Name = "Stamdata", Namespace = "http://schemas.datacontract.org/2004/07/a")]
public class Stamdata
{
[DataMember]
public KeyValuePair<string, Data>[] Liste { get; set; }
}
[DataContract(Name = "Data", Namespace = "http://schemas.datacontract.org/2004/07/System.Collections.Generic")]
public class Data
{
//.... Many properties
}
我的问题是列表一直包含 0 个元素,即使 xml 包含大约 100 个元素。
而且我不确定<d3p1:KeyValuePairOfStringDatagxNgnmsk> 末尾的“gxNgnmsk”是否意味着什么……响应背后的人不知道它是什么。
【问题讨论】:
-
参见:stackoverflow.com/questions/2911514/… 使用 XML Linq 很容易做到。
-
@Icepickle 那个小写字母是我在网站上的一个错字
-
您能否edit 分享包含
Data的一些值的示例XML?这将指示Data本身元素的名称空间。"http://schemas.datacontract.org/2004/07/System.Collections.Generic"几乎可以肯定是Data的错误命名空间,但没有足够的信息来确定正确的命名空间应该是什么。
标签: c# xml datacontractserializer xml-deserialization