即使有很多例子,我找不到我需要的东西?我的问题就像标题“如何将数据表转换为xml”...
虽然,您可以在任何技术中推荐解决方案,但我也有一个起点,请看一下这段代码。
Dim xmlDoc As New XDocument(
New XElement("Class",
From row In dt.AsEnumerable()
Select New XElement("PUPIL",
New XAttribute("FIRSTNAME", row.Field(Of String)("First Name")),
New XAttribute("LASTNAME", row.Field(Of String)("Last Name")),
New XAttribute("DOB", row.Field(Of String)("DoB")),
New XAttribute("YEAR", row.Field(Of String)("Year")),
New XAttribute("SEX", row.Field(Of String)("Gender")),
New XAttribute("CLASSNAME", row.Field(Of String)("Reg"))
)))))
在这个例子中,我需要知道要进行转换的列数和列名。我讨厌将列名硬编码到Linq中,是否可以在Linq中使用任意数量的列和列名?
如果有人可以建议我改进Linq以处理数据表中的任何列,那将是很棒的。
非常感谢。
LINQ解决方案......
Dim xmlDoc As New XDocument(
From row In dt.Rows
Select New XElement("Pupil",
From column In dt.Columns
Select
New XAttribute(column.ToString, row.Item(column.ToString))))
对于Datatable.WriteXML解决方案,请参阅Habib的帖子
答案 0 :(得分:2)
您可以使用:DataTable.WriteXML();
代替LINQ DataTable dt = new DataTable();
dt.WriteXml("myxmlfile.xml");
如果要根据Schema读取和写入数据,请执行以下步骤:
请尝试以下代码
DataSet ds = new DataSet();
ds.ReadXmlSchema("test1.xsd"); //This will read and prepare dataset according to tes1.xsd schema
ds.ReadXml("test.xml"); // This will read the XML and it should be schema compliant
ds.WriteXml("test7.xml");//This will write the new XML according to schema
在您的情况下,您可以根据需要修改架构,然后您可以使用XML架构生成从Dataset到XML的文档。您必须首先将数据表保存在数据集中。 (我对这种方法不太确定,但由于我没有看到对这个问题的新回复,我认为这对你有所帮助)