由其节点c#读取的Xml文件

时间:2012-04-08 18:41:39

标签: c# asp.net .net xml webforms

我想读取一个XML文件,然后将其显示到网页,但我无法在for循环中执行

XmlDocument doc = new XmlDocument();
doc.Load(@"c:/xmldatabase.xml");
XmlElement root = doc.DocumentElement;
XmlNodeList nodes = root.SelectNodes("//User");

foreach (XmlNode node in nodes)
{
    Label1.Text = node["Name"].InnerText;
    Label3.Text = node["Contact"].InnerText;
    Label4.Text = node["Email"].InnerText;
    Label2.Text = node["City"].InnerText;
    Label5.Text = node["Country"].InnerText;
}

我的XML有数据!

<?xml version="1.0"?>
<User-Profile>
  <User>
    <Name>Jhon</Name>
    <Contact>4567897632</Contact>
    <Email>pri@dfdcm.com</Email>
    <City>xyz</City>
    <Country>abc</Country>
  </User>
    <User>
    <Name>Mike</Name>
    <Contact>8888888</Contact>
    <Email>acvb@dfdcm.com</Email>
    <City>xrtty</City>
    <Country>abffff</Country>
  </User>
  <User>
    <Name>Stone</Name>
    <Contact>875467</Contact>
    <Email>dfttgh@dfdcm.com</Email>
    <City>dfvbnj</City>
    <Country>ddccvv</Country>
  </User>
</User-Profile>

我想使用循环或任何东西显示所有数据并将这些数据分配给我的网页标签是否可能?怎么做?

2 个答案:

答案 0 :(得分:1)

你应该做的是使用中继器。然后,您可以在foreach循环中为每个用户添加一个列表,并使用该列表填充您的转发器。有关转发器的详细信息以及如何填充转发器,请参阅http://msdn.microsoft.com/en-us/magazine/cc163780.aspx

答案 1 :(得分:0)

请在c#中使用“PlaceHolder”。您可以轻松拖放PlaceHolder :) 然后使用此代码

foreach (XmlNode node in nodes)
{
  PlaceHolder1.Controls.Add(new LiteralControl("<table><tr><td>" + node["Name"].InnerText + "</td><td>"+node["Contact"].InnerText+"</td><td>"+node["Email"].InnerText+"</td><td>"+node["City"].InnerText+"</td><td>"+node["Country"].InnerText+"</td></tr></tabel>")); 
}

重要: - 代码上方缺少一些文本。请与下面的图片进行比较。然后您可以开发出最佳代码。 :) Image