如何从XML文件中使用C#

问题描述:

我有名字的xml文件employeesInfo和数据被像如何从XML文件中使用C#

<?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

这可以做的工作 -

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; 
} 
+0

它工作正常,我有一个小疑问,如果suppo我是第一次运行应用程序,然后在XML文件中,我不会有“empcode”属性,那时我该如何检查。 –

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

XElement lastEmployeeDetails = root.LastNode; 

要获得最后一个元素和具体价值,你的情况

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();