我无法使用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>
的值?
第一个问题:在Console.WriteLine(q)行之后,您可以编写Console.ReadLine()。因此,结果将显示,直到你按下"Enter"。
第二个问题:如果你想要一个列表中的所有值,那么你可以使用q.ToList()