C#シーケンス化されたオブジェクトをXML形式の文字列に変換
3446 ワード
実習会社のもとの左側のメニューはjsを通じてajaxを行って1つのxmlのファイルを求めて1つのxmlの対象を得て、それからhtmlのファイルをつなぎます
秘密保持の必要性から、私は問題を抽象化して、このxmlは国家-省-都市で表現することができます
データベースから取り出したデータの差はそれほど大きくありません(これはマルチテーブルjoin後の結果セットです):
id
province
city
address
1
江蘇省
南京
nanjing
2
浙江省
杭州
hangzhou
3
浙江省
寧波
ningbo
最後に生成するxmlの長さは次のとおりです.
まず、クラスを定義します.
なお、ここでメインメニューとサブメニューの対応関係を保存する場合は、Hashtableは使用できません.Hashtableは無秩序に格納されているため、メニューには順序が必要です
ここでは、コアコードの例を示します.
1、C# SQL, DataTable
2、 DataTable , Dictionary,key ,value , ArrayList
3、 Dictionary, key , List,List
4、 , xml, aspx
秘密保持の必要性から、私は問題を抽象化して、このxmlは国家-省-都市で表現することができます
データベースから取り出したデータの差はそれほど大きくありません(これはマルチテーブルjoin後の結果セットです):
id
province
city
address
1
江蘇省
南京
nanjing
2
浙江省
杭州
hangzhou
3
浙江省
寧波
ningbo
最後に生成するxmlの長さは次のとおりです.
まず、クラスを定義します.
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Web.UI;
using System.Web.UI.WebControls;
using IAUOperation.db;
using System.Collections;
using System.Data.SqlClient;
using Operation.Web;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
[XmlRoot("country")]
public class Country
{
[XmlAttribute]
public string width;
[XmlElement("province")]
public List provinces;
}
[XmlRoot("province")]
public class Province
{
[XmlAttribute]
public string name;
[XmlElement("city")]
public List cities;
}
public class City
{
[XmlAttribute]
public string name;
[XmlAttribute]
public string address;
}
public class CityItem
{
public string province;
public string city;
public string address;
}
なお、ここでメインメニューとサブメニューの対応関係を保存する場合は、Hashtableは使用できません.Hashtableは無秩序に格納されているため、メニューには順序が必要です
ここでは、コアコードの例を示します.
DataTable dt = dbBase.executeInternalQuery(strSQL);
HashSet hashSetMenus = new HashSet();
Dictionary provinceCity = new Dictionary();
List CityItemList = new List();
for (int i = 0; i < dt.Rows.Count; i++)
{
string tmpProvince = dt.Rows[i]["province"].ToString();
hashSetProvinces.Add(tmpProvince);
CityItem cityItem = new SubMenuItem();
cityItem.province = tmpProvince;
cityItem.city = dt.Rows[i]["city"].ToString();
cityItem.address = dt.Rows[i]["address"].ToString();
CityItemList.Add(cityItem);
}
for (int i = 0; i < dt.Rows.Count; i++)
{
//
string tmpProvince = dt.Rows[i]["province"].ToString();
//
string tmpCity = dt.Rows[i]["city"].ToString();
if (hashSetProvinces.Contains(tmpMainMenu))
{
if (!provinceCity.ContainsKey(tmpMainMenu))
{
ArrayList citylist = new ArrayList();
citylist.Add(tmpSubMenu);
provinceCity.Add(tmpProvince, citylist);
}
else
{
ArrayList temp = provinceCity[tmpProvince] as ArrayList;
temp.Add(tmpCity);
}
}
}