我有这样的xml
<pda:Party>
...Snip....
<pda:CitizenName>
<pda:CitizenNameTitle>MR</pda:CitizenNameTitle>
<pda:CitizenNameForename>John</pda:CitizenNameForename>
<pda:CitizenNameSurname>Wayne</pda:CitizenNameSurname>
</pda:CitizenName>
.....Snip...
</pda:Party>
其中,公民名称是参与方节点中的复杂类型。(这是从我正在为其创建适配器的第三方集成接收的XML)
我不感兴趣的是,在我的类中有一个子类型,我试图反序列化到我宁愿有。
public class Party
{
public string FirstName { get; set; }
public string LastName {get;set;}
}
因此,我可以用类似xpath的东西来修饰属性,而不是将类定义作为xml表示的具体定义。
[XmlElement("\CitizenName\CitizenNameForeName")]
public string FirstName {get;set;}
从XML中挑选信息到包含我感兴趣的数据的类中?
从第三方收到的XML非常冗长,我只对特定方面感兴趣。一种选择是创建一个xmldocument并使用xpath和转换方法手动映射到我的类,但是我想我会问是否有中间解决方案?
最佳答案
一种选择是使用xslt转换将传入的xml解析为与类匹配的s格式。