C#在从XML文件获取值时动态创建Panel内的标签

时间:2015-03-04 20:43:40

标签: c# xml

XML文件" XMLFile1.xml"

<website>
    <productlist>
        <a>dynnaplatka</a>
        <b>pamet</b>
        <c>procesor</c>
    </productlist>
</website>

问题在于,当我运行解决方案时,代码添加1个带有文本dynnaplatkapametprocesor的标签,而不是带有文本dynnaplatka,pamet,procesor的3个标签

我看了我的代码1小时,我看不出要解决的问题

protected void Page_Load(object sender, EventArgs e)
{
    XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("~/XMLFile1.xml"));
    XmlNodeList nodelist = doc.SelectNodes("website/productlist");

    foreach (XmlNode node in nodelist)
    {
        Panel1.Controls.Add(new LiteralControl("<br />"));
        Label lbl = new Label();
        lbl.Text = node.InnerText;
        lbl.CssClass = "Labels";
        lbl.ID = node.InnerText;               
        Panel1.Controls.Add(lbl);
    }
}

1 个答案:

答案 0 :(得分:0)

此方法doc.SelectNodes("website/productlist");选择<productlist>节点,而不是其子节点。

要选择所有子节点,您需要此XPath表达式:doc.SelectNodes("website/productlist/*");