2010-10-12 85 views
2

我使用System.Xml在C#中讀取xml文件。 首先,我打開文件(本地)...和使用的foreach得到的值,就像這樣:在C中讀取XML#

XmlNodeList titles = xmlDoc.GetElementsByTagName("title"); 
foreach (XmlNode title in titles) 
{ 
rowNews = new ListViewItem(); 
rowNews.Text = (title.ChildNodes[0].Value); 
listView1.Items.Add(rowNews); 
} 

的問題是,我有很多所謂的稱號,我的文件RSS標籤,我想只讀那些在<entry></entry>裏面的東西?

回答

0

ParentNodeLocalName屬性:

if (title.ParentNode.LocalName == "entry") { ... } 
+0

謝謝主席先生,我很喜歡你的方式最好的工作!也謝謝其他人! – 2010-10-12 16:49:13

+0

XPath方法也很好。如果你熟悉DOM而不是XPath,這只是一種更簡單的方法。 – LarsH 2010-10-12 18:31:07

0

這裏有一個提示:看看你如何遍歷第一個「標題」節點。

0

你有沒有嘗試過像入口/標題一樣的xpath?

7

通常它更容易在這種情況下使用XPaths,讓您的代碼會是這個樣子:

XmlNodeList titles = xmlDoc.SelectNodes("//entry/title"); 
foreach (XmlNode title in titles) 
{ 
rowNews = new ListViewItem(); 
rowNews.Text = (title.ChildNodes[0].Value); 
listView1.Items.Add(rowNews); 
} 
1

我建議在System.Xml.Linq使用XDocument命名空間。

然後,你可以簡單地寫document.Elements("entry").Elements("title")