Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从具有属性的XML元素中提取文本_C#_Xml - Fatal编程技术网

C# 从具有属性的XML元素中提取文本

C# 从具有属性的XML元素中提取文本,c#,xml,C#,Xml,我有这样一个xml文件: <root> <image size = "small">www.linktosmallimage.jpg</image> <image size = "large">www.linktolargeimage.jpg</image> </root> 问题是:如何获得第二个链接?(大图像的链接,因为它是我唯一需要的) 提前感谢。x.选择SingleNode(“图像[2]”) 奇怪的是,XPath数组

我有这样一个xml文件:

<root>
<image size = "small">www.linktosmallimage.jpg</image>
<image size = "large">www.linktolargeimage.jpg</image>
</root>
问题是:如何获得第二个链接?(大图像的链接,因为它是我唯一需要的)

提前感谢。

x.选择SingleNode(“图像[2]”)

奇怪的是,XPath数组从[0]开始

这里有很多关于XPath的信息:

顺便说一句,您应该研究一下——语法更庞大,但更健壮

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的元素。如果假设成立,这是更好的方法。如果您不信任订单,并且希望使用size属性,请执行以下操作:

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