我有像我在下面描述的xml文件
<Root name="myRoot">
<Field name = "myField">"blabla</Field>
<List name="data">
<Row name="data">
<Field name="Field1">sample</Field>
<Field name="Field2">sample</Field>
</Row>
</List>
</Root>
我想将此xml文件映射到此类:
public class Row
{
public string Field1
{
get;set;
}
public string Field2
{
get;set;
}
}
我的问题是如何将atrribute名称映射到“Row”类的属性? 顺便说一下,我能够根据标签(Field)映射到“Row”类的属性。 我的观点是如何使用额外条件进行映射,该条件具有字段标记上的属性名称值?
抱歉我的英语。提前致谢。
答案 0 :(得分:1)
没有内置的xml序列化程序(特别是XmlSerializer
和DataContractSerializer
)都不允许您使用属性的值映射到成员。属性的名称 - 确定(例如<cust id="12345" name="Fred"/>
) - 但不是您的<Field name="Field2">...</Field>
。
因此,您必须使用XmlDocument
,XDocument
或XmlReader
等内容手动执行此操作。或者,也许可以通过xslt运行它来将它变成XmlSerializer
可以处理的东西,即你可以构造(通过xslt):
<myRoot>
<myField>"blabla</myField>
<data>
<data>
<Field1>sample</Field1>
<Field2>sample</Field2>
</data>
</data>
</myRoot>
(特别是使用<xsl:element name="@name">
)