创建xml格式c#
本文关键字:格式 xml 创建 | 更新日期: 2023-09-27 17:53:51
我想在c#中创建这样的xml格式
<?xml version='1.0' encoding='us-ascii'?>
<root>
<key value="22.wav">
<Index>1</Index>
<Index>20</Index>
<Index>21</Index>
</key>
<key value="EFG.wav">
<Index>5</Index>
<Index>22</Index>
</key>
</root>
我是如何形成这样的,请帮助我
您可以使用以下代码:
XDocument doc = new XDocument(new XDeclaration("1.0", "us-ascii", null),
new XElement("root",
new XElement("key", new XAttribute("value", "22.wav"),
new XElement("Index", 1),
new XElement("Index", 20),
new XElement("Index", 21)),
new XElement("key", new XAttribute("value", "EFG.wav"),
new XElement("Index", 5),
new XElement("Index", 22))));
doc.Save(fileName);
实现这一点的最佳方法是XMLSerialization。如下所述创建一个属性类,并为其赋值:
[Serializable]
[XmlRoot("root")]
public class RootClass
{
[XmlElement("key")]
public List<KeyClass> key { get; set; }
}
[Serializable]
[XmlType("key")]
public class KeyClass
{
[XmlElementAttribute("value")]
public string KeyValue { get; set; }
[XmlElement("Index")]
public List<int> index { get; set; }
}
现在创建如下所述的XML:
static public void SerializeXML(RootClass details)
{
XmlSerializer serializer = new XmlSerializer(typeof(RootClass));
using (TextWriter writer = new StreamWriter(@"C:'Xml.xml"))
{
serializer.Serialize(writer, details);
}
}
如何使用SerializeXML方法赋值和生成XML:
// Create a New Instance of the Class
var keyDetails = new RootClass();
keyDetails.key = new List<KeyClass>();
// Assign values to the Key property
keyDetails.key.Add(new KeyClass
{
KeyValue = "22.wav",
index = new List<int> { 1, 2, 3}
});
keyDetails.key.Add(new KeyClass
{
KeyValue = "EFG.wav",
index = new List<int> { 5 , 22 }
});
// Generate XML
SerializeXML(keyDetails);
查看此文章XmlDocument流畅接口
XmlOutput xo = new XmlOutput()
.XmlDeclaration()
.Node("root").Within()
.Node("key").Attribute("value", "22.wav").Within()
.Node("Index").InnerText("1")
.Node("Index").InnerText("20")
.Node("Index").InnerText("21").EndWithin()
.Node("key").Attribute("value", "EFG.wav").Within()
.Node("Index").InnerText("2")
.Node("Index").InnerText("22");
string s = xo.GetOuterXml();
//or
xo.GetXmlDocument().Save("filename.xml");
关于如何在代码中构建xml的其他方法请检查以下答案在c#代码中构建xml的最佳方法是什么