使用LINQ提取RDL数据

问题描述:

我正在使用一些SQL报告定义文件(RDLs),使用LINQ提取用于验证的组件查询语句。我试图从<DataSets>元素中提取<DataSet>元素。我似乎在<的DataSet > <场> <场>其中有一个命名空间预选赛< RD是越来越挂了的要素之一:类型名>使用LINQ提取RDL数据

我一直在使用LINQ to XML的文件的其它部分通过指定默认名称空间,没有任何名称空间限定符没有问题。该RDL指定了两个命名空间:

xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"> 


当我试图让<数据集>元素,不过,我得到以下错误:

System.Xml.XmlException - 在“: '字符,十六进制值0x3A,不能包含在名称中。

我知道它与子元素之一中的名称空间限定符(rd :)有关,但我很难获得可用的LINQ表达式。任何帮助,将不胜感激。谢谢!

您使用的是C#还是VB.NET?在VB中,您可以像导入其他.NET命名空间一样使用Imports语句导入xml命名空间。

如果您使用的是C#,那么LINQ to XML是您应该考虑将一个VB项目添加到C#解决方案的地方。

无论哪种方式,Beth Massi都有一个很棒的How Do I Video Series covering LINQ to XML in VB.NET #8会谈导入XML命名空间。

+0

感谢您的回答丹尼斯。我已经看到了VB对LINQ/XML的一些语法糖,它看起来不错。我在主要使用C#。我能够解决这个问题。我曾怀疑它与命名空间有关,结果证明我没有正确地限定它们。尽管如此,它需要一些试验和错误才能实现。再次感谢! – BobC