gpt4 book ai didi

c#-4.0 - 将 header 添加到 XDocument 和架构

转载 作者:行者123 更新时间:2023-12-02 17:47:27 25 4
gpt4 key购买 nike

我想要像这样的xml

<?xml version="1.0"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schema.test.com/test">

<test1>1</test1>
.
.
.
.
<test9>9</test9>
</root>

所以我使用下面的代码

   Dictionary<string, object> Data = new Dictionary<string, object>();
for (int i = 0; i < 10; i++)
{
Data.Add("Test" + i, i);



}

Console.WriteLine(DateTime.Now.ToShortTimeString());


XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
XNamespace xsd = XNamespace.Get("http://www.w3.org/2001/XMLSchema");
XNamespace xsd1 = XNamespace.Get("http://schema.test.com/test");


XDocument doc = new XDocument(

new XDeclaration("1.0", "utf-16", "yes"),

new XElement(

"root",
new XAttribute(XNamespace.Xmlns + "xsi", xsi),
new XAttribute(XNamespace.Xmlns + "xsd", xsd),
new XAttribute(XNamespace.None + "xmlns", xsd1),

from p in Data select new XElement(p.Key, p.Value )

)

);

/* XmlSchema schema = new XmlSchema();
schema.Namespaces.Add("xmlns", "http://schema.medstreaming.com/report");

doc.Add(schema);*/


var wr = new StringWriter();
doc.Save(wr);
Console.Write(wr.GetStringBuilder().ToString());

但它在保存时崩溃了

The prefix '' cannot be redefined from '' to 'http://schema.test.com/test' within the same start element tag.

最佳答案

我使用了以下并且效果很好

 XNamespace xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
XNamespace xsd = XNamespace.Get("http://www.w3.org/2001/XMLSchema");
XNamespace ns = XNamespace.Get("http://schema.test.com/test");


XDocument doc = new XDocument(

new XDeclaration("1.0", "utf-8", "yes"),

new XElement(

ns + "root",
new XAttribute("xmlns", ns.NamespaceName),
new XAttribute(XNamespace.Xmlns + "xsd", xsd.NamespaceName),
new XAttribute(XNamespace.Xmlns + "xsi", xsi.NamespaceName),
from p in Data select new XElement(ns + p.Key, p.Value)

)

);

效果很好

关于c#-4.0 - 将 header 添加到 XDocument 和架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13009066/

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