2012-04-08 179 views
-1

我想读一个XML文件,然后展示给网页,但我无法做到这一点在for循环的xml文件读取C#

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>[email protected]</Email> 
    <City>xyz</City> 
    <Country>abc</Country> 
    </User> 
    <User> 
    <Name>Mike</Name> 
    <Contact>8888888</Contact> 
    <Email>[email protected]</Email> 
    <City>xrtty</City> 
    <Country>abffff</Country> 
    </User> 
    <User> 
    <Name>Stone</Name> 
    <Contact>875467</Contact> 
    <Email>[email protected]</Email> 
    <City>dfvbnj</City> 
    <Country>ddccvv</Country> 
    </User> 
</User-Profile> 

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

+2

任何理由不使用LINQ到XML?很可能让一切更简单... – 2012-04-08 18:44:45

+0

我不知道的LINQ to XML,如果它是很容易,你能告诉我我的情况下读取XML和打印整个结果网页的样本标签 – smita 2012-04-08 18:46:55

+0

LINQ是最好的选择,和要容易得多,但在你的代码中,你可能会显示标签中最后一次迭代的值。如果必须在标签中显示记录,则应在循环内创建它们并将它们添加到网页 – Habib 2012-04-08 18:48:08

回答

0

请使用“占位符”,在C#。您可以轻松地拖放占位符:) 然后使用此代码

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>")); 
} 

要点: - 一些文本缺少上述code.please下面的图像进行比较。那么你可以开发最好的代码。 :) Image

1

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