我需要创建具有N Level的xml文件。
代表。在我的下面的例子中,我有'AlbumDetails'是根元素,'PrintPackage'是另一个子根,'UpgradePackage'是另一个子根。
任何人都可以告诉我如何在c#中制作N Level / Multi Level XML。
<AlbumDetails>
<Album Id="203">
<Institute>Oxford</Institute>
<Venue>Wallingford School</Venue>
<PrintPackage>
<SizeName>Combination Pack</SizeName>
<Price>1.00</Price>
<Weight>60.00</Weight>
<UpgradePackage>
<SizeName>Upgrade 1</SizeName>
<Price>1.00</Price>
<Weight>60.00</Weight>
</UpgradePackage>
<SizeName>Standard Pack</SizeName>
<Price>90.0000</Price>
<Weight>600.0000</Weight>
</PrintPackage>
</Album>
</AlbumDetails>
答案 0 :(得分:1)
您正在寻找XmlWriter课程。
更新:如果您要创建类似于上述文档的文档:
var builder = new StringBuilder();
using (var writer = XmlWriter.Create(builder))
{
writer.WriteStartElement("AlbumDetails");
writer.WriteStartElement("Album");
writer.WriteAttributeString("Id", "203");
writer.WriteElementString("Venue", "Wallingford School");
writer.WriteStartElement("PrintPackage");
.... etc.
writer.WriteEndElement(); // close PrintPackage
writer.WriteEndElement(); // close Album
writer.WriteEndElement(); // close AlbumDetails
}
Console.WriteLine(builder.ToString());
答案 1 :(得分:1)
使用System.Xml.Linq(Linq2Xml)中的XDocument和XElement
XDocument doc = new XDocument(new XDeclaration("1.0","utf-8","true"),
new XElement("AlbumDetails",
new XElement("Album",new XAttribute("Id","203"),
new XElement("Institute","Oxford"),
new XElement("Venue","Wallingford School")
...
)
)
);
如果您只是寻找XElement,您可以以类似的方式构建它。您可以拥有processingElement并根据您的逻辑创建XElement并执行
doc.Add(processingElement);
或
ele.Add(processingElement);
答案 2 :(得分:0)
他们不是真正的“孩子根源” - 他们只是具有其他子元素的元素。
我个人使用LINQ to XML。它是迄今为止我使用的最简单的XML API。例如:
var element = new XElement("AlbumDetails",
new XElement("Album",
new XAttribute("ID", 203"),
new XElement("Institute", "Oxford"),
new XElement("Venue", "Wallingford School"),
new XElement("PrintPackage",
new XElement("SizeName", "Combination Pack"),
// etc
new XElement("UpgradePackage",
new XElement("SizeName", "Upgrade 1"),
// etc
)
)
);
当然,您不必在单个语句中构建所有内容 - 您可以单独添加子节点,可能完全单独构建它们。实际上,您可能需要一个单独的方法来创建每个“容器”元素。