【问题标题】:c# reading xml filec#读取xml文件
【发布时间】:2012-08-31 00:17:04
【问题描述】:

我正在尝试从创建的 xml 文件中的 thumbnail_large 元素中提取 <thumbnail_large>http://b.vimeocdn.com/ts/235/662/23566238_640.jpg</thumbnail_large> 值。有没有办法在不遍历 who 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>

【问题讨论】:

    标签: c# .net xml xpath


    【解决方案1】:

    是的,有,它被称为 XPath。试试这个:

    XmlDocument doc = new XmlDocument();
    doc.Load(@"/path/to/file");
    XmlNode node = doc.SelectSingleNode("/videos/video/thumbnail_large");
    string URI = node.InnerText;
    

    至少这是我可以从这个格式不佳的文件中读取的内容。如果您使用两种不同的字母(视频详细信息和 HTML 标记),您应该考虑使用命名空间。

    【讨论】:

      【解决方案2】:

      看看:

      1. 对于 .NET Framework 3.5+ -- XDocument
      2. 否则:XmlDocument

      【讨论】:

        【解决方案3】:
        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));
        }
        

        【讨论】:

        • 您不是 XML 库的粉丝吗? :)
        • 我没有投反对票!我不认为你的解决方案很优雅,但它并没有错。再说一遍:我没有投反对票
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-19
        • 2012-03-10
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多