2016-05-16 55 views
0

我想通过阅读vb.net中的xml来在运行时更新rdlc报告。 我的报告是像下面运行时RDLC报告更新

<?xml version="1.0" encoding="utf-8"?> 
<Report .... 
<DataSources> 
.... 
</DataSources> 
<DataSets> 
<DataSet Name="DS_MAIN"> 
<Fields> 
<Field Name="Value3"> 
     <DataField>Value3</DataField> 
     <rd:TypeName>System.String</rd:TypeName> 
</Field> 

和IM使用访问此节点像这样

Dim MyXMLNode As Xml.XmlNode = MyXML.SelectSingleNode("/Report/DataSet[@Name='DS_MAIN']/Fields/Field[@Name='Value3']/DataField") 

但我MyXMLNode不会得到任何价值。 请帮我解决这个问题。

回答

0

尝试XML的LINQ

Imports System.Xml 
 
Imports System.Xml.Linq 
 
Module Module1 
 

 
    Const FILENAME As String = "c:\temp\test.xml" 
 
    Sub Main() 
 

 

 
     Dim doc As XDocument = XDocument.Load(FILENAME) 
 
     Dim root As XElement = doc.FirstNode 
 
     Dim ns = root.Name.Namespace 
 
     Dim fields = doc.Descendants(ns + "Field").Select(Function(x) New With { _ 
 
      .name = x.Attribute("Name").Value, _ 
 
      .datafield = x.Element(ns + "DataField").Value, _ 
 
      .typeName = x.Descendants().Where(Function(y) y.Name.LocalName = "TypeName").Select(Function(z) z.Value).FirstOrDefault() _ 
 
     }).ToList() 
 
    End Sub 
 

 
End Module

+0

感谢您的答复,这是工作的罚款处理字符串,但是当我加载整个报告,它不会输出,这是我的报告 –

+0

这是我试过的文件这仍然不会给任何输出http://www.filedropper.com/2detailmainreport –

+0

您需要添加一个名称空间。看修改后的代码。 – jdweng