我想在下面的示例中獲取所有的子頁面。 XML看起來像這樣(簡單的佈局)我如何找到我的XML中的所有子節點
<?xml version="1.0"?>
<main>
<group title="Server Tools" enabled="True">
<page title="Server Tools" pageId="1" subtitle="Tools for servers" enabled="True">
<subpage title="Name-1" pageId="2" subtitle="" enabled="True">
<subpage title="Name-2" pageId="3" subtitle="" enabled="True">
<subpage title="Name-3" pageId="4" subtitle="" enabled="True">
<subpage title="Name-4" pageId="5" subtitle="" enabled="True">
</subpage>
</subpage>
</subpage>
</subpage>
</page>
</group>
</main>
我試圖創建以下,但它只發現第一個「子頁面」。
XmlDocument doc = new XmlDocument();
doc.Load(path + @"\config.xml");
XmlNodeList groups = doc.SelectNodes("main/group");
foreach (XmlNode group in groups)
{
String groupTitle = group.Attributes["title"].InnerText;
String groupEnabled = group.Attributes["enabled"].InnerText;
maxResults = Convert.ToInt32(group.Attributes["maxResults"].InnerText);
if (groupEnabled == "True")
{
firstGroup.Title = groupTitle;
XmlNodeList pages = group.SelectNodes("page");
foreach (XmlNode page in pages)
{
String pageTitle = page.Attributes["title"].InnerText;
int pageId = Convert.ToInt32(page.Attributes["pageId"].InnerText);
String subtitle = page.Attributes["subtitle"].InnerText;
String pageEnabled = page.Attributes["enabled"].InnerText;
if(pageEnabled == "True")
{
firstGroup.Items.Add(new PageItem(pageId, pageTitle, subtitle));
pageList.Add(pageId);
XmlNodeList subpages = page.SelectNodes("subpage");
foreach (XmlNode subpage in subpages)
{
string subpageTitle = subpage.Attributes["title"].InnerText;
int subpageId = Convert.ToInt32(subpage.Attributes["pageId"].InnerText);
String subpageSubtitle = subpage.Attributes["subtitle"].InnerText;
String subpageEnabled = subpage.Attributes["enabled"].InnerText;
if (subpageEnabled == "True")
{
subpageDic.Add(subpageId, new Tuple<int, string, string>(pageId, subpageTitle, subpageSubtitle));
}
}
}
}
}
}
我在做什麼錯?我只想瀏覽子頁面下的所有子頁面並獲取可用的屬性。
在此先感謝。
問題可能是子頁面嵌套。 – Krizz 2012-02-19 21:11:56
嘗試使用遞歸來遍歷嵌套的子頁面。 – pistipanko 2012-02-19 21:18:07
嗨Krizz,嗯沒關係,有沒有更簡單的方法來做這個佈局呢。我希望能夠擁有多個頁面節點和子頁面,但是如果需要的話,一個子頁面也應該有sub,sub,sub頁面。任何想法;) – cptrico 2012-02-19 21:18:55