当前位置:编程学习 > C#/ASP.NET >>

.net读取xml内容 内容在指定的表格内显示 如何做?

XML:
<?xml version="1.0" encoding="gb2312"?>
<Books>
  <Bookss>
<names>C++程序设计</names>
<Author>李钢,张战军,于秋生</Author>
<Publishing>科学出版社</Publishing>
<dates>2008-09-01</dates>
<pic>images/1.jpg</pic>
  </Bookss>
  <Bookss>
<names>软件测试基础教程</names>
<Author>(美)马瑟,王峰,郭长国,陈振华</Author>
<Publishing>机械工业出版社</Publishing>
<dates>2011-8-1</dates>
<pic>images/2.jpg</pic>
  </Bookss>
</Books>

 


CS代码如下:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Xml;
using System.Collections.Generic;
using System.Xml.XPath;


public partial class Default2 : System.Web.UI.Page
{
    //public string[] y = new string[5];
    protected void Page_Load(object sender, EventArgs e)
    {
        //DataSet objDataSet = new DataSet();
        //objDataSet.ReadXml(Server.MapPath("1.xml"));
        //GridView1.DataSource = objDataSet.Tables[0].DefaultView;
        //GridView1.DataBind();

        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("1.xml"));//你的xml文件
        XmlNodeList xmlList = xmlDoc.SelectSingleNode("Books").ChildNodes;
        for (int i = 0; i < xmlList.Count; i++)
        {
            foreach (XmlNode xmlNo in xmlList.Item(i))
            {
                XmlElement xe = (XmlElement)xmlNo;
                {
                    if (xe.Name == "names")
                    {
                        Label1.Text = xe.InnerText;
                    }

                    if (xe.Name == "Author")
                    {
                        Label2.Text = xe.InnerText;
                    }

                    if (xe.Name == "Publishing")
                    {
                        Label3.Text = xe.InnerText;
                    }

                    if (xe.Name == "dates")
                    {
                        Label4.Text = xe.InnerText;
                    }
                    if (xe.Name == "pic")
                    {
                        ImageButton1.ImageUrl = xe.InnerText;
                    }
                }
            }
        }

    }
    protected void Button1_Click(object sender, EventArgs e)
    {

    }
   
}


这样只能读取最后一个   我想循环全部读取出来   应该怎么做啊? --------------------编程问答-------------------- 你每次循环都给众Lables赋一遍值当然只能显示最后一条啊= =
你可以定义一个实体类,用来存放名称,作者,出版社等等。然后循环遍历XML生成一个这个类型的集合,再用GridView进行显示。 --------------------编程问答-------------------- http://blog.csdn.net/suntanyong88/article/details/5969536 --------------------编程问答-------------------- 显示方法
http://dotnet.aspx.cc/file/DataSource-Xml-Nested-DataBinding.aspx --------------------编程问答-------------------- 回复2楼:你说的是绑定到GridView,我不是要的这效果!我要的是在Label读取出来! --------------------编程问答-------------------- 用GridView显示早做出来了,但是现在我想要在一个表格里的各个Label读取出相应的值!求解答!!! --------------------编程问答-------------------- 所有的绑定控件道理都是一样 --------------------编程问答--------------------
还是不懂呢 --------------------编程问答--------------------
--------------------编程问答--------------------
引用 5 楼  的回复:
用GridView显示早做出来了,但是现在我想要在一个表格里的各个Label读取出相应的值!求解答!!!

那你一个Label是要显示一列数据呢还是只显示一列中的一行数据呢? --------------------编程问答-------------------- 自己画个表格,循环出来就是了。。 --------------------编程问答--------------------
XDocument xdoc = XDocument.Load(@"D:\快盘\mydatabase\books.xml");
            //Console.WriteLine(xdoc.ToString());

            XElement xroot = xdoc.Root;//获得根节点Books

            foreach (XElement xet in xroot.Elements("Bookss"))
            {
                //Console.WriteLine(xet.ToString());
                //Console.WriteLine("==============");

                foreach (XElement item in xet.Elements())
                {
                    Console.WriteLine("<td>{0}</td><td>{1}</td>",item.Name,item.Value);                    
                }
                Console.WriteLine("==============");
            }
            Console.ReadKey();
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,