-2

我在 C 驱动器的数据目录中名为 contents.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 ,它会显示“枚举不返回任何结果”。

我可以用来获得我真正需要的东西的最佳方式是什么,这就是 many 的价值观<d:Text>

4

1 回答 1

1

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

第二个问题:如果您想要列表中的所有值,那么您可以执行 q.ToList()

于 2013-06-16T07:58:59.190 回答