无法在此XML上执行LINQ

时间:2010-02-01 12:20:08

标签: linq-to-xml

我有一个XML文件。我无法对此XML执行任何XLINQ查询。

我还使用了LINQPad来测试,但它没有返回任何结果。

示例查询:

XDocument doc = XDocument.Load(@"G:\Plugins.xml");
var res = from plugin in doc.Descendants("Modules")
          select plugin;
res.Dump();

XML文件是:

<SolutionProfile xmlns="http://schemas.microsoft.com/pag/cab-profile">
    <Modules>
        <ModuleInfo AssemblyFile="xxxx.dll" />
        <ModuleInfo AssemblyFile="xxxx.dll" />
        <ModuleInfo AssemblyFile="xxxx.dll" />
        <ModuleInfo AssemblyFile="xxxxx.dll" />
        <ModuleInfo AssemblyFile="xxxxx.dll" />

        <ModuleInfo AssemblyFile="xxxxxx.dll" />
    </Modules>
</SolutionProfile>

这是一个SCSF和CAB XML文件。如果我从XML查询中删除以下标记工作正常。

<SolutionProfile xmlns="http://schemas.microsoft.com/pag/cab-profile">
</SolutionProfile>

1 个答案:

答案 0 :(得分:0)

问题不在于您的SolutionProfile标记,而是在其中存在xmlns属性。

复制现有的SO问题。请查看here以获取确切答案。

哦,如果您按照链接中的解决方案,您将需要在命名空间的末尾添加额外的“/”。