【问题标题】:c# - How to create XML with subrowsc# - 如何创建带有子行的 XML
【发布时间】:2016-11-22 13:42:02
【问题描述】:

我是 C# 和 XML 的新手。 我有 xsd 文件并从中创建了 cs 文件,如此处所述Generating XML file using XSD file 现在我需要生成包含多张发票的 XML 文件,并且每张发票都有 1 个或多个子行。 该怎么做?

【问题讨论】:

  • 你尝试了什么?
  • 试试google吧,会有帮助的。
  • 我用谷歌搜索过,最接近的例子可能在这里msdn.microsoft.com/en-us/library/… 但看起来只有一个 OrderItem。但是如果我有很多呢?
  • 例子是 typeof(MyClass) 你可以在 typeof(List) 和voilla中改变它

标签: c# xml xmlserializer


【解决方案1】:

1 启动 VS 命令提示符

2 生成类,基于 XSD 和 SvcUtil.exe

svcutil xml_in_arved.xsd /language:C# /dataContractOnly /importxmltypes   /out:class.cs

3 编写代码填充类

XmlDocument doc = new XmlDocument();
doc.LoadXml("<book>" +
                    "  <title>Oberon's Legacy</title>" +
                    "  <price>5.95</price>" +
                    "</book>");

invoices invoices = new invoices();
invoices.Nodes = new XmlNode[2];
invoices.Nodes[0] = doc.CreateNode("element", "test", "myNamespace");
invoices.Nodes[1] = doc.CreateNode("element", "tes2", "myNamespace");

4 将类序列化为 xml

序列化示例

var content = invoices;
var filename = @"c:\temp\xmlserialise.xml";
using (TextWriter textWriter = new StreamWriter(filename, false))
{
    var serializer = new XmlSerializer(content.GetType());
    serializer.Serialize(textWriter, content);
}

【讨论】:

  • 我正在使用这个 xsd wiki.directo.ee/_media/et/xml_in_arved.xsd 生成的类。如何补课?
  • 好吧,这可能是正确的答案,我只是不知道如何使用它。就像我发布的那样,我是 C# 的新手。首先,我生成了像这样的 xsd.exe /classes xml_in_arved.xsd 类,它给了我比使用 svcutil xml_in_arved.xsd /language:C# /dataContractOnly /importxmltypes /out:class.cs 更大的 cs 文件 不确定哪个是正确的。跨度>
  • 查看生成的差异以及满足您需求的差异。我们的工作也是一些研究和探索。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-06
相关资源
最近更新 更多