【发布时间】:2010-11-15 22:10:48
【问题描述】:
这是我的代码的 sn-p。
FilterText = HttpUtility.UrlDecode(FilterTxt.Value.ToString());
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
TextWriter tw = new StreamWriter("D:\\FilterTest.rdl");
tw.WriteLine(FilterText);
tw.Close();
XmlDocument reportrdl = new XmlDocument();
reportrdl.Load(ReportFile);
NMS = reportrdl.NamespaceURI;
XmlNodeList fieldsnode = reportrdl.GetElementsByTagName("DataSet");
//XmlElement xoo = reportrdl.CreateElement("Filters", NMS);
//reportrdl.AppendChild(xoo);
foreach (XmlNode fields in fieldsnode)
{
// second document to merge (the new Filter File)
XmlDocument filterrdl = new XmlDocument();
filterrdl.Load("D:\\FilterTest.rdl");
XmlNode imported = reportrdl.ImportNode(filterrdl.DocumentElement, true);
fields.AppendChild(imported);
break;
}
//XmlNodeList filtersnode = reportrdl.GetElementsByTagName("Filters");
//foreach (XmlNode filters in filtersnode)
//{
// filters.Attributes.RemoveNamedItem("xmlns");
// }
reportrdl.Save("D:\\NewFilter.rdl");
这里是rdl文件的sn-p:
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<DataSources>
<DataSource Name="BOSS">
<rd:DataSourceID>c6a8409e-71a4-4e96-86ad-b300a5b942c3</rd:DataSourceID>
<ConnectionProperties>
<DataProvider>SQL</DataProvider>
<ConnectString>dats a no no</ConnectString>
<IntegratedSecurity>true</IntegratedSecurity>
</ConnectionProperties>
</DataSource>
</DataSources>
在<Query>之后的这个文件中,我需要合并到<Filters>
这是那个文件:
<Filters>
<Filter>
<FilterExpression>=Fields!RoleID.Value</FilterExpression>
<Operator>Equal</Operator>
<FilterValues>
<FilterValue>=27</FilterValue>
</FilterValues>
</Filter>
</Filters>
结束<Filters xmlns="">
而不是<Filters>
谢谢
【问题讨论】:
-
我不太清楚你的问题是什么,你能否整理一下这个问题,并举例说明你得到了什么以及你想要发生什么?
-
它实际上非常简单我有一个包含用于过滤器的 XML 的文件,我想将它合并到另一个 xml 文件(报告 rdl)中。我发现我可以做到,但是当 AppendChild 添加节点时,它会添加 xmlns="" 的属性,然后以
我根本不想要 xmlns=""。
标签: c# xml reporting-services xml-namespaces