算法-从结构创建xml

本文关键字:创建 xml 结构 算法 | 更新日期: 2023-09-27 18:28:00

我的数据库中有两个表-Category和Food。食品有idCategory。类别具有id和idParentCategory。

从中,我需要创建一个字符串,它看起来像这样(或xml):

<?xml version="1.0">
<tree id="0">
    <item text="Category1">
        <item text="Food1"/>
        <item text="Food2"/>
    </item>
    <item text="Category2">
        <item text="Category1">
            <item text="Food3"/>
            <item text="Food4"/>
        </item>
        <item text="Category3">
            <item text="Food5"/>
            <item text="Food6"/>
        </item>
    </item>
</tree>

如何创建?我试着找到id==1的类别,然后搜索它的所有子类别,但它非常复杂。有简单的方法吗?

一个类别可以有很多类别,但他们的孩子只能有食物。

算法-从结构创建xml

您可以从具有所需结构的对象中序列化它;但您首先必须创建对象。

请参阅:在C#中将XML反序列化为对象如果你不知道对象的结构。

一旦有了对象,就很容易将其序列化为XML字符串:

        XmlSerializer serializer = new XmlSerializer(typeof(THEOBJECT));
        string THEOBJECTXMLSTRING;
        using (var stream = new MemoryStream())
        {
            serializer.Serialize(stream, THEINSTANCEOFTHEOBJECT);
            stream.Seek(0, SeekOrigin.Begin);
            var sr = new StreamReader(stream);
            THEOBJECTXMLSTRING = sr.ReadToEnd();
        }
        return THEOBJECTXMLSTRING;

您最好生成一个XML文档,并尝试获取字节信息,以便将其转换为字符串。否则不仅耗时,而且很容易出错。