【发布时间】:2016-12-13 18:54:56
【问题描述】:
我试图写出“水果”排名元素中的每个子元素。就像现在的代码一样,它转到我的 xml 文件中的第一个排名元素并输出其中的子元素:但是我如何按名称转到“水果”并写出它的子元素?
Xml
<ranking name="Browers>
<stat name="Chrome" />
<stat name="Firefox" />
<stat name="Safari" />
</ranking>
<ranking name="Fruit>
<stat name="Apple" />
<stat name="Orange" />
<stat name="Strawberry" />
</ranking>
代码隐藏
XmlReader reader = XmlReader.Create(Server.MapPath("/temp/rankings.xml"));
while (true)
{
reader.ReadToFollowing("ranking");
string name = reader.GetAttribute("name");
if (name == "Fruit")
{
if (reader.ReadToDescendant("stat"))
{
do
{
litList.Text += reader.GetAttribute("name") + "<br />";
litList.Text += reader.GetAttribute("percent") + "<br />";
litList.Text += reader.GetAttribute("absolute") + "<br />";
} while (reader.ReadToNextSibling("stat"));
}
break;
}
}
【问题讨论】:
-
两个循环呢?排名第一,统计第二?
-
成功了,只是想不明白。
-
那么,如果没有一个名为fruit的排名,你会进入死循环吗?您发布的这段代码将 gasp 满足您非常 的特定需求,但这并不是真正的方法。 (只是说以防其他人需要类似的东西,他们不会复制/粘贴)
标签: c# asp.net xml webforms xmlreader