2011-04-12 110 views
0

我需要写LINQ到此类的XML查询下面的XML数据创建XML文件的LINQ to 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>部分

我是新来的LINQ to XML请帮忙,谢谢。

+0

不知道我确切地知道你的意思。说例如你想从上面的XML检索什么会有所帮助。 – grzeg 2011-04-12 09:05:14

回答

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)) 

               )       
          ); 
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, 
             }); 
+0

也许我以错误的方式提出了问题,我想创建一个XML文档,就像我的问题中的一个,我正在从我的数据库中提取数据。并且我可以使用id,d1,d2等,但是在S部分是更深一层,我不能让它看起来像这样我能够做的是显示每个S标签相同的产品。我想我需要某种X节点或者其他可以包含其他元素的东西 – Bastardo 2011-04-12 10:59:07