如何使用c#从XML文件中获取子属性值

时间:2017-08-02 10:24:48

标签: c# xml xml-parsing

我正在使用名为employeesInfo的xml文件,其数据类似于

<?xml version="1.0" encoding="utf-8"?>
<EmployeeDetails>
  <data>
    <empCode>DIT-GINT-0001</empCode>
    <FirstName>Dinesh</FirstName>
    <LastName>Alla</LastName>
    <Address>Guntur</Address>
  </data>
  <EmployeeDetails>
    <empCode>DIT-GINT-0002</empCode>
    <FirstName>Upendra</FirstName>
    <LastName>Maddi</LastName>
    <Address>guntur</Address>       
  </EmployeeDetails>
  <EmployeeDetails>
    <empCode>DIT-GINT-0003</empCode>
    <FirstName>Chandrkanth</FirstName>
    <LastName>Beth</LastName>
    <Address>guntur</Address>       
  </EmployeeDetails>
</EmployeeDetails>

我获取属性{“empCode”}值的代码是

XDocument doc = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/employeesInfo.xml"));
XElement root = doc.Root;
string s = root.Elements("empCode").Last().ToString();

要求:我想获得最后一个父元素的empcode值。

上述文件的输出示例:DIT-GINT-0003

3 个答案:

答案 0 :(得分:2)

在您的代码示例中,根目录为<EmployeeDetails>。获取其子节点并选择最后一个,然后获取此节点的<empCode>。我很抱歉,我写这个作为答案,我没有足够的声誉。

XElement lastEmployeeDetails = root.LastNode;

答案 1 :(得分:2)

获取案例中的最后一个元素和特定值

XDocument doc = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/employeesInfo.xml"));
XElement root = doc.Root;
string s = root.Element("EmployeeDetails").Element("empCode").LastNode.ToString();

答案 2 :(得分:1)

这可以完成工作 -

XDocument doc = XDocument.Load(@"D:\Temp\asd.xml");
var s = doc.Descendants("empCode").Last().Value;

检查节点是否存在 -

XDocument doc = XDocument.Load(@"D:\Temp\asd.xml");
var empCodes = doc.Descendants("empCode");
string result = string.Empty;

if(empCodes.Count() > 0)
{
     result = empCodes.Last().Value;
}