使用C#创建嵌套XML

时间:2014-04-24 12:13:28

标签: c# xml

我想为当前的应用程序创建一个嵌套的XML文件。

XML的输入数据来自以下形式。我面临的问题是该块。

在这个块中,我必须从datagridview获取数据,并且必须将数据保存到XML:

Table Name  Field           FieldType
Table1           f1          Search
Table1           f2          Update
Table2           f1          Search
Table2           f2          Update

这里给出了XML结构。

<?xml version="1.0"?>

-<database>


-<databasedtls>

<databasename/>

<path/>

<port/>

<user/>

<password/>

</databasedtls>


-<tables>


-<table>

<tablename>TABLE1</tablename>


-<FIELDS>


-<Search>

<field/>

<field/>

</Search>


-<Update>

<field/>

<field/>

</Update>

</FIELDS>

</table>


-<table>

<tablename>TABLE2</tablename>


-<FIELDS>


-<Search>

<field/>

<field/>

</Search>


-<Update>

<field/>

<field/>

</Update>

</FIELDS>

</table>

</tables>

</database>

请帮我解决这个问题.....

1 个答案:

答案 0 :(得分:0)

您可以使用.NET XMLSerializer执行此操作。它允许您将对象序列化为XML。这里有两个很好的链接

这提供了如何使用XML Serializer的基本示例 http://msdn.microsoft.com/en-us/library/58a18dwa(v=vs.110).aspx

这引入了XML属性,您可以在自己的类上使用它们来控制序列化类实例时输出XML的外观 http://msdn.microsoft.com/en-us/library/2baksw0z(v=vs.110).aspx

这需要你构建一些类,我的推荐基于你的结构

类:

  • 数据库
  • databasedtls
  • 字段(摘要)
  • SearchField(extends Field)
  • UpdateField(extends Field)

这些类应该具有基于xml结构的适当属性,例如,database应该有一个databasedtls属性和一个表列表。

如果上述内容过于复杂,或者投入时间太多,您可以直接进行字符串操作或修改XMLDocument对象,但如果可以,我建议不要这样做。

这种代码可能难以维护,并且更容易支持糟糕的OOP实践,但它们也是您知道的选项。