0

我正在使用一些 SQL 报告定义文件 (RDL),使用 LINQ 提取组件查询语句以进行验证。我正在尝试从 <DataSets> 元素下提取 <DataSet> 元素。我似乎被 <DataSet><Fields><Field> 下的元素之一挂断了,它有一个命名空间限定符 <rd:TypeName>

通过指定默认命名空间,我一直在将 LINQ to XML 用于没有命名空间限定符的文件的其他部分。RDL 指定了两个命名空间:

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


但是,当我尝试获取 <DataSets> 元素时,出现以下错误:

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

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

4

1 回答 1

1

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

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

无论哪种方式,Beth Massi 都有一个很棒的How Do I 视频系列,涵盖 VB.NET 中的 LINQ to XML #8 讨论导入 XML 命名空间。

于 2009-09-12T03:25:23.903 回答