如何将记录包含到XML元素C#中 [英] How do I include records into XML element C#

查看:78
本文介绍了如何将记录包含到XML元素C#中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨...我想请你们帮我创建这个xml文件...我已经尝试过上面这段代码,但是我有一些错误......即使我在ForFor之外声明了docRecords循环它给了我一个错误:

Hi...I would like to please you guys to help me creating this xml file...I've tried with this code above but I've got some Errors...even when I declarate docRecords outside of For loop it gives me an Error:

An unhandled exception of type 'System.NullReferenceException' occurred in XMLGenUsingLINQ.exe

附加信息:对象引用不是定义为对象实例......类似的东西......我从我的语言翻译过来了。



这是我想得到的架构:

Additional information: The object reference not defined as Object Instance...something like that...I've translated from my language :)

Here is the Schema I want to get:

<Report> 
	<Versao>1</Versao> 
	<Details> 
		<Record> 
			<ID>1</ID> 
			<Reference>20171</Reference> 
		</Record> 
		<Record> 
			<ID>2</ID> 
			<Reference>20172</Reference> 
		</Record> 
	</Details> 
</Report>





我的尝试:



我是试过这个:



What I have tried:

I've tried this:

XDocument docHeader = new XDocument(
    new XElement("Report",
    new XElement("Versao", "1"),
    new XElement("Details", "")
));

for (int i = 0; i < 2; i++)
{
    var docRecords = new XElement("Record",
                    new XElement("ID", i.ToString()),
                    new XElement("Reference", "2017" + i.ToString())
        );
}

docHeader.Element("Details").Add(docRecords);
using (var writer = new XmlTextWriter("C:\\Reports\\MyReport.xml", new UTF8Encoding(false)))
{
    docHeader.Save(writer);
}

推荐答案

详细信息节点是报告的后代,因此无法直接引用

使用docHeader.Element(Report)。元素(详细信息)。添加(docRecords)



Details Node is a Descendant of Report so it cannot be referenced directly
use docHeader.Element("Report").Element("Details").Add(docRecords)

for (int i = 0; i < 2; i++)
{
      var docRecords = new XElement("Record",
                                new XElement("ID", i.ToString()),
                                new XElement("Reference", "2017" + i.ToString())
                    );

    docHeader.Element("Report").Element("Details").Add(docRecords);
}


这篇关于如何将记录包含到XML元素C#中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆