<?xml version="1.0" encoding="utf-8"?>
<root>
<id>111</id>
<name>aa</name>
<item site="www.163.com" name="网易" />
<item site="www.263.net" name="263" />
</root> [XmlRoot("root")]
public class siteConfig
{
private string _id;
public string id
{
get
{
return _id;
}
set
{
_id = value;
}
}
private string _name;
public string name
{
get
{
return _name;
}
set
{
_name = value;
}
}
在xml的结构不可能更改的情况,请问要把item节点弄成item[]这样的数组,应该怎么样写?
}
<root>
<id>111</id>
<name>aa</name>
<item site="www.163.com" name="网易" />
<item site="www.263.net" name="263" />
</root> [XmlRoot("root")]
public class siteConfig
{
private string _id;
public string id
{
get
{
return _id;
}
set
{
_id = value;
}
}
private string _name;
public string name
{
get
{
return _name;
}
set
{
_name = value;
}
}
在xml的结构不可能更改的情况,请问要把item节点弄成item[]这样的数组,应该怎么样写?
}
解决方案 »
- 获取文件名的问题
- 验证码的获取
- C#多线程访问时如何才能把文件锁定,避免同时访问?
- 如何读取access数据库的创建日期和表的创建日期!急!!!
- winform 开发中,有没有和Webform 中类似 web.config 文件一样,可以存放数据库路径等配置信息??
- 怎样向Access'备注'字段读写文本,并保持换行及缩进格式?(50分)
- CommandBarButton有问题?
- 紧急。。。
- 标签控件的运用:一长串英文字符,不明白这里的new是什么意思?
- 怎么把数据导入到excel中去阿
- 编码转换: 荷兰甲级联赛
- 一个基础的问题 关于private
[XmlRoot("root")]
public class siteConfig : IXmlSerializable //<---
{
private string _id;
public string id
{
get { return _id; }
set { _id = value; }
}
private string _name;
public string name
{
get { return _name; }
set { _name = value; }
} private Site[] items;
public Site[] Items {
get { return this.items; }
set { this.items = value; }
} public class Site
{
public string site;
public string name;
public Site(string site, string name)
{
this.site = site;
this.name = name;
}
} #region IXmlSerializable Members System.Xml.Schema.XmlSchema IXmlSerializable.GetSchema()
{
return null;
} void IXmlSerializable.ReadXml(System.Xml.XmlReader reader) //<---
{
List<Site> sites = new List<Site>(); while (reader.Read())
{
if (reader.IsStartElement())
{
switch (reader.Name)
{
case "id":
this.id = reader.ReadString();
break;
case "name":
this.name = reader.ReadString();
break;
case "item":
string site = reader["site"];
string name = reader["name"];
sites.Add(new Site(site, name));
break;
}
}
}
this.Items = sites.ToArray();
} void IXmlSerializable.WriteXml(System.Xml.XmlWriter writer) //<---
{
writer.WriteElementString("id", this.id);
writer.WriteElementString("name", this.name);
if (this.Items != null)
{
foreach (Site site in this.Items)
{
writer.WriteStartElement("item");
writer.WriteAttributeString("site", site.site);
writer.WriteAttributeString("name", site.name);
writer.WriteEndElement();
}
}
} #endregion
}
它里面嵌套多层子节点,用ReadXml和WriteXml来弄,就很不好弄了,除了上面那种,有没有别的方法?