gpt4 book ai didi

c# - XmlDocument - 不能将前缀 '' 从 '' 重新定义为 'X'

转载 作者:行者123 更新时间:2023-11-30 14:08:32 24 4
gpt4 key购买 nike

我这样做:

 var xml = new XmlDocument();
xml.AppendChild(xml.CreateXmlDeclaration("1.0", Encoding.UTF8.BodyName, "yes"));
var el = (XmlElement)xml.AppendChild(xml.CreateElement("Document"));
el.SetAttribute("xmlns", "urn:iso:std:iso:20022:tech:xsd:" + SepaSchemaUtils.SepaSchemaToString(schema));

然后为了让 XML 缩进,我这样做:

StringBuilder sb = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings
{
Indent = true,
IndentChars = " ",
NewLineChars = "\r\n",
NewLineHandling = NewLineHandling.Replace
};
using (XmlWriter writer = XmlWriter.Create(sb, settings))
{
doc.Save(writer);
}

执行 doc.Save(writer) 时出现异常。

System.Xml.XmlException: The prefix '' cannot be redefined from '' to 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.03' within the same start element tag.

我已经尝试了我能找到的一切。谢谢。

最佳答案

您正尝试在命名空间中创建Document 元素,但同时设置了默认命名空间。我怀疑你只是想:

String ns = "urn:iso:std:iso:20022:tech:xsd:" + SepaSchemaUtils.SepaSchemaToString(schema);
var xml = new XmlDocument();
xml.AppendChild(xml.CreateXmlDeclaration("1.0", Encoding.UTF8.BodyName, "yes"));
var el = (XmlElement) xml.AppendChild(xml.CreateElement("Document", ns));
el.SetAttribute("xmlns", ns);

或者,我强烈推荐使用 LINQ to XML,这使得这项任务和许多其他任务变得非常非常简单。

关于c# - XmlDocument - 不能将前缀 '' 从 '' 重新定义为 'X',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34881413/

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