随笔-3  评论-91  文章-0  trackbacks-0

本实例是一个从数据库里读出来省份,城市,地区的数据生成3个XML文件.

首先创建一个Linq to SQL的类, 然后将省份,城市,地区的表拖入类中:


然后新建一个类,加入代码如下:


        
public void ResetProvinces(string path)
        
{
            XElement xmlProvinces 
= new XElement("Provinces");

            
foreach (S_Province province in DB.S_Provinces)
            
{
                xmlProvinces.Add(
                    
new XElement("Province", province.ProvinceName.ToString(),
                                 
new XAttribute("ID", province.ProvinceID.ToString()),
                                 
new XAttribute("ProvinceName", province.ProvinceName.ToString())
                        )
                    );
            }


            xmlProvinces.Save(@path);
        }


        
public void ResetCities(string path)
        
{
            XElement xmlCities 
= new XElement("Cities");

            
foreach (S_City city in DB.S_Cities)
            
{
                xmlCities.Add(
                    
new XElement("City", city.CityName.ToString(),
                                 
new XAttribute("ID", city.CityID.ToString()),
                                 
new XAttribute("CityName", city.CityName.ToString()),
                                 
new XAttribute("PID", city.ProvinceID.ToString()),
                                 
new XAttribute("ZipCode", city.ZipCode.ToString())
                        )
                    );
            }


            xmlCities.Save(@path);
        }


        
public void ResetDistract(string path)
        
{
            XElement xmlDistricts 
=new XElement("Districts");

            
foreach (S_District district in DB.S_Districts)
            
{
                xmlDistricts.Add(
                    
new XElement("District", district.DistrictName.ToString(),
                                 
new XAttribute("ID", district.DistrictID.ToString()),
                                 
new XAttribute("DistrictName", district.DistrictName.ToString()),
                                 
new XAttribute("CID", district.CityID.ToString())
                        )
                    );
            }


            xmlDistricts.Save(@path);
        }

最后执行过代码后可以看到XML效果:

(以城市为例)

<?xml version="1.0" encoding="utf-8"?>
<Cities>
    
<City ID="1" PID="1" ZipCode="100000">北京市</City>
    
<City ID="2" PID="2" ZipCode="100000">天津市</City>
    
<City ID="3" PID="3" ZipCode="050000">石家庄市</City>
    
<City ID="4" PID="3" ZipCode="063000">唐山市</City>
    
<City ID="5" PID="3" ZipCode="066000">秦皇岛市</City>
    
<City ID="6" PID="3" ZipCode="056000">邯郸市</City>
    
<City ID="7" PID="3" ZipCode="054000">邢台市</City>
    
<City ID="8" PID="3" ZipCode="071000">保定市</City>
    
<City ID="9" PID="3" ZipCode="075000">张家口市</City>
    
<City ID="10" PID="3" ZipCode="067000">承德市</City>
    
<City ID="11" PID="3" ZipCode="061000">沧州市</City>
    
<City ID="12" PID="3" ZipCode="065000">廊坊市</City>
    
<City ID="13" PID="3" ZipCode="053000">衡水市</City>
    
<City ID="14" PID="4" ZipCode="030000">太原市</City>
    
<City ID="15" PID="4" ZipCode="037000">大同市</City>
    
<City ID="16" PID="4" ZipCode="045000">阳泉市</City>
    
<City ID="17" PID="4" ZipCode="046000">长治市</City>
    
<City ID="18" PID="4" ZipCode="048000">晋城市</City>
    
<City ID="19" PID="4" ZipCode="036000">朔州市</City>
    
<City ID="20" PID="4" ZipCode="030600">晋中市</City>
    
<City ID="21" PID="4" ZipCode="044000">运城市</City>
    
<City ID="22" PID="4" ZipCode="034000">忻州市</City>
    
<City ID="23" PID="4" ZipCode="041000">临汾市</City>
    
<City ID="24" PID="4" ZipCode="030500">吕梁市</City>
    
<City ID="25" PID="5" ZipCode="010000">呼和浩特市</City>
    
<City ID="26" PID="5" ZipCode="014000">包头市</City>
    
<City ID="27" PID="5" ZipCode="016000">乌海市</City>
</Cities>

开博第一帖,虽然代码不算什么经典,也借此纪念,希望日后在这里结交更多朋友,谢谢!
-------------------------------------------
吴慧锋
Wilson Wu
Tag标签: C#,LINQ,.NET,XML
posted on 2008-04-25 21:57 WilsonWu 阅读(1708) 评论(17)  编辑 收藏 所属分类: .NET

评论:
#1楼  2008-04-25 23:39 | Yannic Yang      
LINQ to Xml操作XML确实很方便~

另外 lz那个NVP很好很强大。。。。
  回复  引用  查看    
#2楼  2008-04-26 01:08 | 逸冰a [未注册用户]
很强的..熟悉linq
  回复  引用  查看    
#3楼  2008-04-26 07:56 | LanYo      
NVP?第一次见:P
  回复  引用  查看    
#4楼  2008-04-26 09:36 | 不准笑话NVP      
学习了。
LINQ似乎无所不能哦

  回复  引用  查看    
#5楼  2008-04-26 09:40 | jowo      
喜欢你的NVP呵呵,
  回复  引用  查看    
#6楼  2008-04-26 09:42 | 何随风      
LINQ----正在学习中.

  回复  引用  查看    
#7楼  2008-04-26 12:13 | 没剑      
如果用vb9的新特性,楼主的代码起码可减少1半以上
  回复  引用  查看    
#8楼  2008-04-26 13:34 | Q.Lee.lulu      
欢迎欢迎,欢迎博客园首个NVP!!

linq to xml 就是方便哈
  回复  引用  查看    
#9楼  2008-04-26 18:04 | Zhuang miao      
NVP您好!不仔细看还真没看出来
  回复  引用  查看    
#10楼  2008-04-26 18:52 | 装配脑袋      
如果是XML嵌入语法来写,ResetCities可以写成这样:

Dim xmlCities = <Cities>
                   
<%= From city In DB.S_Cities Select _
                       
<City>
                           
<ID><%= city.CityID %></ID>
                           
<CityName><%= city.CityName %></CityName>
                           
<PID><%= city.ProvinceID %></PID>
                           
<ZipCode><%= city.ZipCode %></ZipCode>
                       
</City> %>
               
</Cities>


  回复  引用  查看    
#11楼  2008-04-26 22:53 | 韩现龙      
哈哈,wilson兄出来了~
  回复  引用  查看    
#12楼 [楼主] 2008-04-27 01:04 | WilsonWu      
@Yannic Yang
@LanYo
@jowo
@Q.Lee.lulu
@Zhuang miao
NVP这个图大家喜欢的话随便拿去用,在我相册里.
  回复  引用  查看    
#13楼  2008-04-27 11:20 | 没剑      
--引用--------------------------------------------------
装配脑袋: 如果是XML嵌入语法来写,ResetCities可以写成这样:<br />
<span style="color: #0000ff"><br />
<span style="color: #0000ff">Dim</span><span style="color: #000000"> xmlCities </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">&lt;</span><span style="color: #000000">Cities</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">%</span><span style="color: #000000">=</span><span style="color: #000000"> From city </span><span style="color: #0000ff">In</span><span style="color: #000000"> DB.S_Cities </span><span style="color: #0000ff">Select</span><span style="color: #000000"> _<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">City</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">ID</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">%</span><span style="color: #000000">=</span><span style="color: #000000"> city.CityID %</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">ID</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">CityName</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">%</span><span style="color: #000000">=</span><span style="color: #000000"> city.CityName %</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">CityName</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">PID</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">%</span><span style="color: #000000">=</span><span style="color: #000000"> city.ProvinceID %</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">PID</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;</span><span style="color: #000000">ZipCode</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">%</span><span style="color: #000000">=</span><span style="color: #000000"> city.ZipCode %</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">ZipCode</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;/</span><span style="color: #000000">City</span><span style="color: #000000">&gt;</span><span style="color: #000000"> %</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000">&lt;/</span><span style="color: #000000">Cities</span><span style="color: #000000">&gt;</span></span><span style="color: #000000"><br />
</span>

--------------------------------------------------------
vb牛终于出手啦,哈哈~~~~
  回复  引用  查看    
#14楼  2008-04-27 11:20 | 没剑      
倒怎么出这些代码了??/
  回复  引用  查看    
#15楼  2008-04-27 18:00 | 搜索人生      
我对省份,城市,地区的表比较感兴趣,lz发一份城市数据给我啊!谢了
  回复  引用  查看    
#16楼  2008-04-27 20:24 | 镜涛      
--引用--------------------------------------------------
jowo: 喜欢你的NVP呵呵,
--------------------------------------------------------

  回复  引用  查看    
#17楼 [楼主] 2008-04-27 22:02 | WilsonWu      
@搜索人生
已经在新的一篇随笔中发布了, 如果需要可以看看.

  回复  引用  查看    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-25 22:08 编辑过
 
另存  打印
最新IT新闻:
· 阿里巴巴确立未来十年战略规划 修改自身定位
· 微软高管:Wii用户最终会成为Xbox 360用户
· 遵守YouTube案裁定 谷歌将陷入隐私指控深渊
· iPhone入华在即 中国手机产业生存面临考验
· 阿里巴巴集团再向淘宝注资20亿元