使用linq查询xml
我正在尝试使用 linq 从 xml 查询一些信息,但收到这样的错误 - 是的,我已经定义了 - 使用 System.Linq 你能告诉我,哪里有问题吗? 谢谢
错误 1 找不到 查询模式的实现 对于源类型 'urn.P.IEEE.Item1671.Item2.Item2008.Item02.InstrumentDescription.InstrumentDescription'。 未找到“选择”。 D:\文件和 设置\e539951\我的文档\视觉 工作室 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 28 36 WindowsFormsApplication1
InstrumentDescription test = InstrumentDescription.Load(openFileDialog1.FileName);
var query = from b in test
select new { b.Identification };
I am trying to query some informations from xml with linq but I am getting error like this - Yes I have defined - using System.Linq
Could you tell me, where is a problem?
Thanks
Error 1 Could not find an
implementation of the query pattern
for source type
'urn.P.IEEE.Item1671.Item2.Item2008.Item02.InstrumentDescription.InstrumentDescription'.
'Select' not found. D:\Documents and
Settings\e539951\my documents\visual
studio
2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs 28 36 WindowsFormsApplication1
InstrumentDescription test = InstrumentDescription.Load(openFileDialog1.FileName);
var query = from b in test
select new { b.Identification };
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在您的代码中,
test
仅表示文档的根元素,因此您不能对其使用 LINQ - 它不是一个序列。您应该做什么取决于您的 XSD 的外观。例如,如果根
InstrumentDescription
元素下可以有多个Identification
元素,则只需访问test.Identitication
即可获得列表。In your code
test
represents just the root element of the document, so you can't use LINQ on it – it's not an sequence.What you should do depends on how your XSD looks like. For example, if there can be multiple
Identification
elements under the rootInstrumentDescription
element, then just accessingtest.Identitication
gives you the list.您正在处理
InstrumentDescription
而不是XDocument
,因此您可能需要确保InstrumentDescription
类是 IQueryable。如果您确实想要针对 XML 执行 Linq,则需要将其作为数据集加载,或者使用 Linq2XML(
using System.Xml.Linq
)。在这里查看更多。 http://msdn.microsoft.com/en-us/library /system.xml.linq.aspx
You're handling
InstrumentDescription
instead of anXDocument
so it's probably that you need to make sure youInstrumentDescription
class is IQueryable.If you're actually wanting to do Linq against your XML, you either need to load it in as a dataset, or use Linq2XML (
using System.Xml.Linq
).See more here. http://msdn.microsoft.com/en-us/library/system.xml.linq.aspx