C# 如何从复杂的xml嵌套结构中选择xml值?
我有这个xml数据C# 如何从复杂的xml嵌套结构中选择xml值?,c#,xml,C#,Xml,我有这个xml数据 <Records> <Person id="1234" action="chg" date="12-Oct-2000"> <Gender>Male</Gender> <ActiveStatus>Active</ActiveStatus> <Deceased>No<
<Records>
<Person id="1234" action="chg" date="12-Oct-2000">
<Gender>Male</Gender>
<ActiveStatus>Active</ActiveStatus>
<Deceased>No</Deceased>
<NameDetails>
<Name NameType="Primary Name">
<NameValue>
<FirstName>Joe</FirstName>
<Surname>Doe</Surname>
<OriginalScriptName>Joe Doe</OriginalScriptName>
</NameValue>
</Name>
<Name NameType="Spelling Variation">
<NameValue>
<FirstName>John</FirstName>
<Surname>Doo</Surname>
</NameValue>
<NameValue>
<FirstName>Joeh</FirstName>
<Surname>Doeh</Surname>
</NameValue>
<NameValue>
<FirstName>Jay</FirstName>
<Surname>Doe</Surname>
</NameValue>
<NameValue>
<FirstName>Joo</FirstName>
<Surname>Doe</Surname>
</NameValue>
</Name>
</NameDetails>
</Person>
</Records>
但是如何为该结构选择
NameDetails
的值呢?只要将XML粘贴到Visual Studio并选择“粘贴特殊项”,它就会创建所有类。然后反序列化,再简单不过了:
var serializer = new XmlSerializer(typeof(Records));
using TextReader reader = new StreamReader(new FileStream(@"D:\funky.xml", FileMode.Open));
// All your data is there in result
var result = (Records) serializer.Deserialize(reader);
给定的
public class Records
{
public RecordsPerson Person { get; set; }
}
public class RecordsPerson
{
public string Gender { get; set; }
public string ActiveStatus { get; set; }
public string Deceased { get; set; }
public RecordsPersonName[] NameDetails { get; set; }
public ushort id { get; set; }
public string action { get; set; }
public string date { get; set; }
}
public class RecordsPersonName
{
public RecordsPersonNameNameValue[] NameValue { get; set; }
public string NameType { get; set; }
}
public class RecordsPersonNameNameValue
{
public string FirstName { get; set; }
public string Surname { get; set; }
public string OriginalScriptName { get; set; }
}
xpath是必需的还是可以使用Linq转换XML?谢谢。实际上我已经有了这个模型。现在是从xml文件中读取xml值,然后复制到model@Steve
var result=(记录)序列化程序。反序列化(读取器)代码>是否有办法自动生成所有的DbSet
?我使用的是实体框架。
public class Records
{
public RecordsPerson Person { get; set; }
}
public class RecordsPerson
{
public string Gender { get; set; }
public string ActiveStatus { get; set; }
public string Deceased { get; set; }
public RecordsPersonName[] NameDetails { get; set; }
public ushort id { get; set; }
public string action { get; set; }
public string date { get; set; }
}
public class RecordsPersonName
{
public RecordsPersonNameNameValue[] NameValue { get; set; }
public string NameType { get; set; }
}
public class RecordsPersonNameNameValue
{
public string FirstName { get; set; }
public string Surname { get; set; }
public string OriginalScriptName { get; set; }
}