我有一个像这样的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;
}
问题是:我如何获得第二个链接? (大图像的链接,因为我是唯一需要的链接)?
提前谢谢。
答案 0 :(得分: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;
在这种情况下元素的顺序无关紧要,假设只有一个这样的元素,你将始终得到属性size = large的元素。如果假设认为这是更好的方法。这里有一些好XPath Examples
答案 1 :(得分:1)
如果您不信任该订单,并且您想使用size属性,请执行以下操作:
x.SelectSingleNode("image[@size='large']")
答案 2 :(得分:0)
x.SelectSingleNode("image[2]")
奇怪的是,XPath数组从1而不是[0]开始。
有关XPath的大量信息:http://www.w3schools.com/xpath/default.asp
顺便说一下,你应该研究一下System.Xml.Linq - 语法比较庞大,但它更强大。