我的数据库中有两个表 - 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 的类别,然后搜索它的所有子项,但它非常复杂。有没有简单的方法?
一个类别可以有多个类别,但他们的 child 只能有食物。
最佳答案
您可以从具有您想要的结构的对象序列化它;但您首先必须创建您的对象。
参见:Deserializing XML to Objects in C# 如果您不知道对象结构。
一旦您拥有对象,就很容易将其序列化为 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;
关于c# - 算法 - 从结构创建 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9724314/