2010-10-19 90 views
0

我有一個XML文件,像這樣的:從XML元素中提取文本與屬性

<root> 
<image size = "small">www.linktosmallimage.jpg</image> 
<image size = "large">www.linktolargeimage.jpg</image> 
</root> 

林提取這種方式,第一環節:

foreach (XmlElement x in xmlSource.SelectNodes("/root")) 
      { 
      string s = x.SelectSingleNode("image").InnerText; 
      } 

的問題是:如何獲得第二個鏈接? (大圖像的鏈接,因爲是我唯一需要的)?

預先感謝您。

回答

1

如果你不相信的順序和你要使用的尺寸屬性做:

x.SelectSingleNode("image[@size='large']") 
+0

完美!非常感謝! – 2010-10-20 00:35:38

1
string s; 
foreach(XmlElement x in xmlSource.SelectNodes("/root/image")) 
{ 
    s = x.InnerText; 
} 

如果你總是想要最後一個。
或者你可以這樣做:

 XmlNode y = xmlSource.SelectSingleNode("/root/image[@size=\"large\"]"); 
     string s = y.InnerText; 

在這種情況下,元素的順序並不重要,你總是會得到與屬性大小的元素=大假設只有一個這樣的元素。如果這個假設成立,這是更好的方法。這裏有一些很好XPath Examples