我有一个xml模板,其中包含Header和details部分。 我必须在运行时从对象集合中将数据填充到xml模板中。 详细信息部分将重复,因此我将在foreach循环中将详细信息部分添加到xml文档中。 目前我正在使用xmldocument,但我读到xmldocument占用更多内存,并且在增加xml文件大小时使进程变慢。 请告诉我什么是最好的方法。
tempalte example
<Document>
<Header>
<OrgName></OrgName>
<OrgAddress></OrgAddress>
</Header>
<Detail>
<EmpId> </EmpId>
<EmpName></EmpName>
<Address>
<Stree1></Stree1>
<Stree2></Stree2>
<Pin></Pin>
<City></City>
</Address>
<Detail>
</Document>
预期结果
<Document>
<Header>
<OrgName>abc</OrgName>
<OrgAddress>asd dfs 999 dfsd</OrgAddress>
</Header>
<Detail>
<EmpId>100 </EmpId>
<EmpName>Sham</EmpName>
<Address>
<Stree1>church street</Stree1>
<Stree2>fgdf</Stree2>
<Pin>5472</Pin>
<City>Huston</City>
</Address>
<Detail>
<Detail>
<EmpId>112 </EmpId>
<EmpName>Tomi</EmpName>
<Address>
<Stree1>fsdf</Stree1>
<Stree2>fgdf</Stree2>
<Pin>3455</Pin>
<City>Huston</City>
</Address>
<Detail>
<Detail>
<EmpId>120 </EmpId>
<EmpName>GhanSham</EmpName>
<Address>
<Stree1>sfssdf</Stree1>
<Stree2>fgdf</Stree2>
<Pin>6574</Pin>
<City>Huston</City>
</Address>
<Detail>
</Document>
答案 0 :(得分:1)
如果你想要以最有效的内存方式编写Xml,那么你应该使用XmlWriter类。
http://msdn.microsoft.com/en-us/library/system.xml.xmlwriter.aspx
这是一个例子,使用你的一些Xml:
using(XmlWriter writer = XmlWriter.Create("output.xml"))
{
writer.WriteStartElement("Document");
writer.WriteStartElement("Header");
writer.WriteStartElement("OrgName");
writer.WriteString("abc");
writer.WriteEndElement();
writer.WriteStartElement("OrgAddress");
writer.WriteString("asd dfs 999 dfsd");
writer.WriteEndElement();
// End Header
writer.WriteEndElement();
writer.WriteStartElement("Detail");
writer.WriteStartElement("EmpId");
writer.WriteString("100");
writer.WriteEndElement();
// End Detail
writer.WriteEndElement();
// End Document
writer.WriteEndElement();
}