C# 为包含多个表的数据集编写XML
我的数据集中有两个表 我需要将我的XML结构为:C# 为包含多个表的数据集编写XML,c#,asp.net,xml,C#,Asp.net,Xml,我的数据集中有两个表 我需要将我的XML结构为: <MyRoot> <Settings> <Param1>value1</Param1> <Param2>value2</Param2> <Param3>value3</Param3> </Settings> <Books> <Book>
<MyRoot>
<Settings>
<Param1>value1</Param1>
<Param2>value2</Param2>
<Param3>value3</Param3>
</Settings>
<Books>
<Book>
<BookId>1000</BookId>
<BookName>Book1</BookName>
</Book>
<Book>
<BookId>2000</BookId>
<BookName>Book2</BookName>
</Book>
</Books>
</MyRoot>
谢谢。您可以使用如下代码覆盖原始XML
string filename = "XmlDoc.xml";
System.IO.FileStream stream = new System.IO.FileStream (filename, System.IO.FileMode.Create);
ds.WriteXml(stream);
XmlDocument xmldoc = new XmlDocument("XmlDoc.xml");
XmlNode node1 = xmldoc.CreateNode("Books","Books");
foreach(XmlNode nd in xmldoc.Nodes) {
if(node.value =="Book")
node1.AppendChild(nd);
}
xmldoc.Nodes.Add(node1);
xmldoc.SaveAs("newXmlDoc.Xml");
我不知道如何直接告诉
DataSet.WriteXml
以您想要的方式编写XML,因此您有两个大的选择:
- 让
编写XML,然后修改它DataSet.WriteXml
- 自己编写序列化代码
- 将创建的XML加载到
或XDocument
中,并通过代码重新构造它XmlDocument
- 通过XSLT转换XML(与代码解决方案相比,我更喜欢使用XSLT)
XmlWriter
并使用DataTable.WriteXml
对其进行写入,您应该能够在几行代码中定义自己的格式
为您的用例选择正确的解决方案取决于您。我可能会选择XSTL解决方案。dataSet=GetList();dataSet.DataSetName=“MyRoot”;dataSet.Tables[0].TableName=“Settings”;dataSet.Tables[1].TableName=“Books”;StringWriter swriter=新StringWriter();dataSet.WriteXml(swriter);字符串dsResult=swriter.ToString();
dataSet = GetList();
dataSet.DataSetName = "MyRoot";
dataSet.Tables[0].TableName = "Settings";
dataSet.Tables[1].TableName = "Books";
StringWriter swriter = new StringWriter();
dataSet.WriteXml(swriter);
string dsResult = swriter.ToString();
string filename = "XmlDoc.xml";
System.IO.FileStream stream = new System.IO.FileStream (filename, System.IO.FileMode.Create);
ds.WriteXml(stream);
XmlDocument xmldoc = new XmlDocument("XmlDoc.xml");
XmlNode node1 = xmldoc.CreateNode("Books","Books");
foreach(XmlNode nd in xmldoc.Nodes) {
if(node.value =="Book")
node1.AppendChild(nd);
}
xmldoc.Nodes.Add(node1);
xmldoc.SaveAs("newXmlDoc.Xml");