算法 - 从结构创建xml
我在我的数据库中有两个表 - 分类和食物。食物有idCategory。类别有id和idParentCategory。算法 - 从结构创建xml
从他们身上,我需要创建一个字符串,它看起来像这样(或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的类别,然后搜索它的所有子项,但它非常复杂。有没有简单的方法?
一个类别可以有很多类别,但他们的孩子只能有食物。
您可以从具有所需结构的对象序列化它;但你首先必须创建你的对象。
请参阅: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;
我知道如何序列化一个XML文件。我不知道如何序列化上面的XML文件。 – 2012-03-15 17:24:06
所以问题是从两个表创建对象和层次结构,而不是创建XML? – Bob2Chiv 2012-03-15 17:29:37
问题是在问题中创建Xml。 – 2012-03-15 17:32:17
您最好生成一个XML文档并尝试获取字节信息以便将其转换为字符串。否则不仅费时,而且容易出错。
好吧,如何从这个产生xml文件? – 2012-03-15 16:52:53
您是否尝试过写SQL语句加入数据,然后就倾倒所有的结果到您的字符串? – jzworkman 2012-03-15 16:50:42
你想要“看起来像这样(不是xml,但是string)”,但是你展示的是XML。为什么不显示你想要的?你的第三张桌子在哪里?表格之间的关系是什么? – 2012-03-15 16:51:25
@jzworkman我写Linq加入表,但它有什么好处呢? – 2012-03-15 16:51:26