积极答复者
关于XML操作类的一个问题请教

问题
-
如果我现在要求创建的XML格式如下
<imageList>
<imageModel>
<image_id>1</image_id>
<image_file_name>a</image_file_name>
<image_type_name>a</image_type_name>
</imageModel>
<imageModel>
<image_id>2</image_id>
<image_file_name>b</image_file_name>
<image_type_name>b</image_type_name>
</imageModel>
</imageList>
请教下如果用后台代码来生成我需要的这种xml的格式的文件怎样写,
对这个不是很熟悉,今天查找了一下资料··只有一种能达到xmlDoc.LoadXml("XML字符串格式");
好像比较常用的还有另外一个格式一个一个的加载元素和节点,但是我试验了下没转过来··,
如果有精通的大大的话能否能给示例代码,要求:按照我上面的xml格式创建,一共是3级的
答案
-
XmlDocument dom = new XmlDocument();
XmlNode root = dom.AppendChild(dom.CreateElement("imageList"));XmlNode imageModelNode = root.AppendChild(dom.CreateElement("imageModel"));
imageModelNode.AppendChild(dom.CreateElement("image_id")).InnerText = "1";
imageModelNode.AppendChild(dom.CreateElement("image_file_name")).InnerText = "a";
imageModelNode.AppendChild(dom.CreateElement("image_file_type")).InnerText = "a";XmlNode imageModelNode2 = root.AppendChild(dom.CreateElement("imageModel"));
imageModelNode2.AppendChild(dom.CreateElement("image_id")).InnerText = "2";
imageModelNode2.AppendChild(dom.CreateElement("image_file_name")).InnerText = "b";
imageModelNode2.AppendChild(dom.CreateElement("image_file_type")).InnerText = "b";Console.Write(dom.OuterXml);
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net- 已标记为答案 天驰 2009年10月27日 7:37
全部回复
-
XmlDocument dom = new XmlDocument();
XmlNode root = dom.AppendChild(dom.CreateElement("imageList"));XmlNode imageModelNode = root.AppendChild(dom.CreateElement("imageModel"));
imageModelNode.AppendChild(dom.CreateElement("image_id")).InnerText = "1";
imageModelNode.AppendChild(dom.CreateElement("image_file_name")).InnerText = "a";
imageModelNode.AppendChild(dom.CreateElement("image_file_type")).InnerText = "a";XmlNode imageModelNode2 = root.AppendChild(dom.CreateElement("imageModel"));
imageModelNode2.AppendChild(dom.CreateElement("image_id")).InnerText = "2";
imageModelNode2.AppendChild(dom.CreateElement("image_file_name")).InnerText = "b";
imageModelNode2.AppendChild(dom.CreateElement("image_file_type")).InnerText = "b";Console.Write(dom.OuterXml);
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://blog.tanging.net- 已标记为答案 天驰 2009年10月27日 7:37
-
可用XML序列化方法得, 你需要的XML文件:
static void Main(string[] args)
{
//定义对象
ImageModel im1=new ImageModel(1,"a","a");
ImageModel im2=new ImageModel(2,"b","b");
ImageList il=new ImageList();
il.Add(im1);
il.Add(im2);
//序列化
FileStream fs=new FileStream("c:\test.xml",FileMode.OpenOrCreate);
XmlSerializer xs=new XmlSerialiaer(typeof(ImageList));
xs.Serialize(fs,il);
fs.Close();
fs.Dispose();
}
public class ImageModel
{
public int image_id;
public string image_file_name;
public string image_type_name;
public int ImageModel()
{
}
public int ImageModel(int id,string filename,string typename)
{
image_id=id;
image_file_name=filename;
image_type_name=typename;
}
}
public class ImageList:System.Collections.ICollection
{
ArrayList al;
public ImageList(){ al=new ArrayList();}
public int Add(ImageModel obj)
{
return al.Add(obj);
}
public ImageModel this[int index]
{
get { return (ImageModel)al[index]; }
set { al[index] = value; }
}
#region ICollection 成员public void CopyTo(Array array, int index)
{
al.CopyTo(array, index);
}public int Count
{
get { return al.Count; }
}public bool IsSynchronized
{
get { return al.IsSynchronized; }
}public object SyncRoot
{
get { return al.SyncRoot; }
}#endregion
#region IEnumerable 成员
public System.Collections.IEnumerator GetEnumerator()
{
return al.GetEnumerator();
}#endregion
}
Gao Peter