无法对此 XML 执行 LINQ
我有一个 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>
I have an XML file. I am unable to perform any XLINQ query on this XML.
I also used LINQPad to test, but it is not returning any result.
Sample query:
XDocument doc = XDocument.Load(@"G:\Plugins.xml");
var res = from plugin in doc.Descendants("Modules")
select plugin;
res.Dump();
And the XML file is:
<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>
This is a SCSF and CAB XML file. If I remove the following tag from the XML query works fine.
<SolutionProfile xmlns="http://schemas.microsoft.com/pag/cab-profile">
</SolutionProfile>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
问题不在于您的 SolutionProfile 标记,而在于其中存在 xmlns 属性。
现有 SO 问题的重复。请查看此处 获取确切答案。
哦,如果您按照链接中的解决方案进行操作,您将需要在命名空间末尾添加一个额外的“/”。
The issue is not with your SolutionProfile tags, but rather the presence of the xmlns attribute in it.
Duplicate of an existing SO question. Look here for the exact answer.
Oh, and you'll be needing an extra "/" on the end of your namespace if you follow the solution in the link.