2010-10-19 66 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