使用LINQ to XML创建XML文件

时间:2011-04-12 09:01:35

标签: xml linq linq-to-xml

我需要将linq写入xml这类xml数据的查询

<PRODUCT>
<ID>34169</ID>
<D1>good</D1>
<D2>well</D2>
<L1>lame</L1>
<L2>killer</L2>
<BR>IOMEGA</BR>
<KDV>18</KDV>
<IMG>34169.JPG</IMG>
<EAN>data1</EAN>
<ATP>50+</ATP>
<DM3>0,51</DM3>
<S>
  <L>Tip</L>
  <V>HARICI</V>
</S>
<S>
  <L>Renk</L>
  <V>METALIK GRI</V>
</S>
<S>
  <L>Kapasite (GB)</L>
  <V>500</V>
</S>
<S>
  <L>Dönüş Hızı (Rpm)</L>
  <V>5400,0</V>
</S>
<S>
  <L>Arabirim</L>
  <V>USB 2.0</V>
</S>
<S>
  <L>Form Faktörü (Inch)</L>
  <V>2,5</V>
</S>
<S>
  <L>Ön Bellek (Kb/mb)</L>
  <V>8,0</V>
</S>
<S>
  <L>Satış Garanti Süresi (ay)</L>
  <V>36</V>
</S>

我的问题是

  1. 在那里只获取第一张图片 是几个图像 数据库(img拥有一个路径 图像作为我的数据库中的字符串 表)

  2. 处理<S>部分

  3. 我是LINQ to XML的新手,请帮忙,谢谢。

2 个答案:

答案 0 :(得分:1)

希望这会有所帮助..

        var productElement = XDocument.Load("product.xml").Root;

        var firstImagePath  = productElement.Element("IMG").Value;
        var sElements = productElement.Elements("S");

        //if you want an object instead of XElements, you can do
        var sElementObjects = sElements.Select(xe => new
                                        {
                                              L = xe.Element("L").Value,
                                              V = xe.Element("V").Value,
                                         });

答案 1 :(得分:0)

有我的答案

 XElement productCatalog = 
                   new XElement("PRODUCTCATALOG",

                               from urun in db.TBLP1URUNs
                               select new XElement("PRODUCT",

                                           new XElement("ID", urun.ID),

                                           new XElement("D1", urun.MODEL),

                                           new XElement("D2", urun.URUNACIKLAMA),

                                           new XElement("L1", urun.TBLP1URUNKATEGORI.TREENAME),

                                           new XElement("IMG", db.TBLP1URUNRESIMs.Where(p => p.URUN_ID == urun.ID).First().FILE_NAME),

                                           new XElement("EAN", urun.STOKKODU),

                                           new XElement("ATP", GetUrunStokById(urun.ID)),//STOKMIKTARI

                                           new XElement("DM3", urun.DESI),

                                           from ozellikler in urun.TBLP1OZELLIK_URUNs
                                           select new XElement("S",

                                               new XElement("L", ozellikler.TBLP1OZELLIK.TBLP1OZELLIKTIPI.TIPI),

                                               new XElement("V", ozellikler.TBLP1OZELLIK.OZELLIK))

                                               )                           
                            );