我无法使用LINQ to XML从文件访问XML数据

本文关键字:XML 文件 访问 数据 to LINQ | 更新日期: 2023-09-27 18:18:40

我在C驱动器的data目录下的一个名为content . XML的文件中有以下XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
  <feed xml:base="http://datacenter1.table.core.windows.net/" 
    xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" 
    xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" 
    xmlns="http://www.w3.org/2005/Atom">
    <title type="text">TestContents</title>
    <entry>
        <title type="text" />
    <author>
        <name />
        </author>
        <link rel="edit" title="TestContents" />
        <content type="application/xml">
            <m:properties>
                <d:PartitionKey>0100000</d:PartitionKey>
                <d:Text>xx</d:Text>
            </m:properties>
        </content>
    </entry>
    <entry>
        <title type="text" />
        <updated />
我需要得到<d:Text>的值,所以我创建了这个控制台应用程序:
namespace ConsoleApplication1
{
    class Program
    {
       static void Main(string[] args)
       {
           XDocument xmlDoc = XDocument.Load(@"c:'data'contents.xml");
           var q = from c in xmlDoc.Descendants("entry")
              select (string)c.Element("link") ;
           Console.WriteLine(q);
       }
    }
}
但是我有两个问题。首先,控制台显示,但在我看到输出之前就消失了。其次,如果我在调试器中查看q,它会说"枚举没有返回结果"。

我可以用什么最好的方法来得到我真正需要的是许多<d:Text>的值?

我无法使用LINQ to XML从文件访问XML数据

第一个问题:在Console.WriteLine(q)行之后,您可以编写Console.ReadLine()。因此,结果将显示,直到你按下"Enter"。

第二个问题:如果你想要一个列表中的所有值,那么你可以使用q.ToList()