私は次のxmlを持っています:
<?xml version="1.0" encoding="utf-8" ?>
<layout>
<menu name="Employees" url="Employees.aspx" admin="0">
</menu>
<menu name="Projects" url="Projects.aspx" admin="1">
</menu>
<menu name="Cases" url="Cases.aspx" admin="1">
</menu>
<menu name="CaseView" url="CaseView.aspx" admin="1" hidden="1" parent="Projects">
</menu>
<menu name="Management" url="" admin="1">
<item name="Groups" url="Groups.aspx" admin="1" parent="Management"/>
<item name="Statuses" url="Statuses.aspx" admin="1"/>
</menu>
</layout>
ここに、「親」属性を持つ CaseView とグループがあります。
現在、私は次のように繰り返します:
IEnumerable<XElement> menus =
doc.Element("layout").Elements();
foreach (var menu in menus)
{
string name = menu.Attribute("name").Value;
string active = "";
string url = menu.Attribute("url").Value;
if(activePage == url)
{
active = "class=\"active\"";
}
...
私が欲しいのは:
if(activePage == url || ActiveIsChildOf(name, activePage))
{
active = "class=\"active\"";
}
基本的に、このメソッドは、url 属性として activePage を持つ要素が存在するかどうかを検出する必要があります。存在する場合は、parent 属性があるかどうかを確認します。存在する場合は、親 == 名前かどうかを確認してください。
属性などで要素を見つける方法はありますか? 元:
XElement e = doc.GetByAttribute("url",activePage)
ありがとう