如何从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;
}
答
在您的代码示例根是<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();
它工作正常,我有一个小疑问,如果suppo我是第一次运行应用程序,然后在XML文件中,我不会有“empcode”属性,那时我该如何检查。 –