2012-04-08 220 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