C#读取XML文件

3

我正在尝试从创建的xml文件中提取<thumbnail_large>http://b.vimeocdn.com/ts/235/662/23566238_640.jpg</thumbnail_large>元素中的值。是否有一种方法可以在不循环整个xml文件的情况下提取该值?感谢任何帮助。

<videos>
    <video>
        <id>6271487</id>
        <title>Spheres</title>
        <description>text</description>
        <url>http://vimeo.com/6271487</url>
        <thumbnail_small>http://b.vimeocdn.com/ts/235/662/23566238_100.jpg</thumbnail_small>
        <thumbnail_medium>http://b.vimeocdn.com/ts/235/662/23566238_200.jpg</thumbnail_medium>
        <thumbnail_large>http://b.vimeocdn.com/ts/235/662/23566238_640.jpg</thumbnail_large>
        <embed_privacy>anywhere</embed_privacy>
    </video>
</videos>
3个回答

9
是的,有一种叫做XPath的技术可以实现。请尝试以下内容:
XmlDocument doc = new XmlDocument();
doc.Load(@"/path/to/file");
XmlNode node = doc.SelectSingleNode("/videos/video/thumbnail_large");
string URI = node.InnerText;

至少从这个格式不规范的文件中,我能够读取到这样的信息。如果您在使用两种不同的字母表(视频详情和HTML标记),则应考虑使用命名空间。


4

-4
string s=File.ReadAllText("My.xml");
List<string> urllist= new List<string>();
string val="<thumbnail_large>";
int start= s.IndexOf(val);
while(start!=-1)
{               
start = s.IndexOf(val,start+val.length);
int end = s.IndexOf("</thumbnail_large>",start);
urllist.add(s.Substring(start, end - start -1));
}

3
你不是XML库的粉丝吗? :) - Jan
我没有给你的回答点踩!我认为你的解决方案不够优雅,但并没有错。再次声明:我没有给你的回答点踩。 - Jan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接