从父节点XML标记属性值。这是我的输入XML获取到最后一个子节点
<?xml version="1.0" encoding="UTF-8"?>
<Menu TextField="Menu">
<Menu TextField="Approvals">
<Menu TextField="Vacation/Leave">
<Menu TextField="Vacation Pre-Request Approval" />
<Menu TextField="Vacation Approval" />
</Menu>
<Menu TextField="Late Come Approval" />
<Menu TextField="Loan Approval" />
<Menu TextField="Department Change Approval" />
<Menu TextField="Resignation/Termination">
<Menu TextField="Resignation Approval" />
<Menu TextField="Resignation Clearance" />
</Menu>
</Menu>
<Menu TextField="Employee Transactions">
<Menu TextField="Change Designation" />
<Menu TextField="Organization">
<Menu TextField="Organization Designation & Grade" />
</Menu>
<Menu TextField="Change Grade" />
</Menu>
</Menu>
我想提取TextField
,形成类似下面的字符串:
Approvals > Vacation/Leave > Vacation Pre-Request Approval
Approvals > Vacation/Leave > Vacation Approval
Approvals > Late Come Approval
Approvals > Loan Approval
Approvals > Department Change Approval
Approvals > Resignation/Termination > Resignation Approval
Approvals > Resignation/Termination > Resignation Clearance
Employee Transactions > Change Designation
Employee Transactions > Organization > Organization Designation & Grade
Employee Transactions > Change Grade
我向将TextField的第一个标记值打印到字符串中TextField的最后一个标记值。以下是我尝试过的代码,但是打印的所有TextField值不是我需要的结构格式。
var menus = (from menu in XDocument.Parse(xml).Descendants("Menu")
select new
{
TextField = (string)menu.Attribute("TextField")
}).ToList();
无法从'System.Collections.Generic.IEnumerable'转换为'System.Xml.Linq.XElement' –
您是对的。我编辑了我的答案。 – Sefe
太棒了!它也打印菜单。我不想在列表中打印。任何想法? –