gpt4 book ai didi

c# - 将 xmlns 属性添加到根元素

转载 作者:数据小太阳 更新时间:2023-10-29 01:56:40 26 4
gpt4 key购买 nike

我有 C# 程序来生成 RDL 文件,以便在 Reporting Services 中显示报告。我使用 Linq to Xml 生成 Xml。

当我尝试将 xmlns XAttribute 添加到报表元素时,我遇到了几个问题。

我测试了以下方法:

首先:

        XDocument d = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("Report",
new XAttribute(XNamespace.Xmlns + "rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"),
new XAttribute(XNamespace.Xmlns + "cl", "http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition"),
new XAttribute("xmlns", "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"),
new XElement("DataSources", ""),
new XElement("DataSets", ""),
new XElement("ReportSections",

这是我的代码的一部分,展示了如何生成 xml:

第二个:

XNamespace reportDef = "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition";
XDocument d = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(reportDef + "Report",
new XAttribute(XNamespace.Xmlns + "rd", "http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"),
new XAttribute(XNamespace.Xmlns + "cl", "http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition"),
new XElement("DataSources", ""),
new XElement("DataSets", ""),
new XElement("ReportSections",...

第一个方法返回错误,第二个方法向所有子节点添加属性xmlns

我想要这种格式:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">

最佳答案

尝试使用 XNamespace 添加子节点,如 How to: Create a Document with Namespaces (C#) (LINQ to XML) 中所述

XNamespace reportDef = "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition";
XElement root = new XElement(reportDef + "Report",
new XElement(reportDef + "Child", "child content"));

这应该会给你想要的结果。

您还可以通过添加 xmlns 属性来添加默认命名空间

XElement xe = new XElement(reportDef + "Report",
new XAttribute("xmlns", "http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"),
new XElement(reportDef + "Child", "child content"));

关于c# - 将 xmlns 属性添加到根元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10561948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com