none
Verileri XML dönüştürmek. RRS feed

  • Soru

  • Merhaba Arkadaşlar,
    Elimde Resimde Gördüğümüz Şekilde Veriler Bulunuyor.
    Ben Bu Verileri XML Şekline Dönüştürmek İstiyorum Dataset Kullan Demeyin Çünkü Datasetsiz Yapmam Gerekiyor. XML Şeklinde Ama String.

    Ben Şu Şekilde Bir Metot oluşturdum ama pek sağlıklı değil gibi geldi.

     public static string BuildServiceString(List<ArrayList> list, string header)
            {
                XmlDocument doc = new XmlDocument();
    
                XmlNode productsNode = doc.CreateElement(header.Substring(0, header.IndexOf(" ")));
                doc.AppendChild(productsNode);
    
                foreach (ArrayList liste in list)
                {
                    XmlNode productNode = doc.CreateElement(header.Substring(header.IndexOf(" ") + 1));
                    XmlAttribute productAttribute = doc.CreateAttribute(liste[0].ToString());
                    productAttribute.Value = liste[1].ToString();
                    productNode.Attributes.Append(productAttribute);
                    productsNode.AppendChild(productNode);
    
                    liste.RemoveRange(0, 2);
    
                    for (int i = 0; i < liste.Count; i++)
                    {
                        i = 0;
                        XmlNode nameNode = doc.CreateElement(liste[i].ToString());    
                        liste.RemoveAt(i);                
                        nameNode.AppendChild(doc.CreateTextNode(liste[i].ToString()));
                        liste.RemoveAt(i); 
                        productNode.AppendChild(nameNode);
                    }
                }
                return doc.OuterXml;
            }

    3 Aralık 2012 Pazartesi 16:34

Yanıtlar

  • public string DataSetStringOlarakAl(DataSet ds)
            {
                StringWriter sw = new StringWriter();
                ds.WriteXml(sw);
                string sonuc = sw.ToString();
                return sonuc;
            }


    burhansuleymanvural@windowslive.com

    • Yanıt Olarak İşaretleyen Kubilay YILMAZ 3 Aralık 2012 Pazartesi 20:09
    3 Aralık 2012 Pazartesi 18:46

Tüm Yanıtlar

  • Kubilay bey merhabalar, niye dataset istemediğinizi çok merak ettim doğrusu, 4-5 satır kod yazmak varken bu kadar uğraşmak doğrusu bana zor gelirdi. Eğer dataset düşünürseniz aşağıdaki gibi bir metod oluşturup istediğiniz yerde çağırıp kullanabilirsiniz.

    public DataSet ArrayIceriginiXMLOlarakAl(ArrayList liste)
            {            
                DataSet ds = new DataSet();
                XmlSerializer xs = new XmlSerializer(liste.GetType());
                StringWriter sw = new StringWriter();
                xs.Serialize(sw, liste);
                StringReader sr = new StringReader(sw.ToString());
                ds.ReadXml(sr);
                return ds;
            }


    burhansuleymanvural@windowslive.com


    3 Aralık 2012 Pazartesi 16:51
  • Merhaba Burhan Bey Cevabınız İçin Öncelikle Teşekkür Ederim.
    Bunu DataSet'siz yapmam Gerekiyor Çünkü Bunu Web Servis İçin'de Kullanacağım.
    Bu Web Servisi'de Windows Phone'dan Veri Çekmek İçin Kullanacağım. Onun İçin xml şeklinde string olarak göndermem gerekiyor.
    3 Aralık 2012 Pazartesi 18:21
  • tamam sonuçta dönen dataseti string bir değişkene  aktarabilirsiniz.

    burhansuleymanvural@windowslive.com

    3 Aralık 2012 Pazartesi 18:35
  • public string DataSetStringOlarakAl(DataSet ds)
            {
                StringWriter sw = new StringWriter();
                ds.WriteXml(sw);
                string sonuc = sw.ToString();
                return sonuc;
            }


    burhansuleymanvural@windowslive.com

    • Yanıt Olarak İşaretleyen Kubilay YILMAZ 3 Aralık 2012 Pazartesi 20:09
    3 Aralık 2012 Pazartesi 18:46
  • Bana Şu Tarz Dataset nasıl veri gönderebilirki yani nasıl bir kod parçacığı.

    <GetCategories>
      <Categories id="4">
          <company_id>1</company_id>
          <category_name>Salatalar</category_name>
          <sort_id>1</sort_id>
          <status_id>1</status_id>
      </Categories>
    </GetCategories>

    3 Aralık 2012 Pazartesi 18:47
  • Yukarıda ikinci bir fonksiyon tanımladım.

    burhansuleymanvural@windowslive.com

    3 Aralık 2012 Pazartesi 18:51
  • Burhan Bey Verdiğiniz Fonksiyon Çalıştı Teşekkür Ederim Bir Sorum Daha Olacaktı.

    string'in başına 

    <NewDataSet>
      <Table>
    veriler....
    </Table>
    </NewDataSet>

    Şeklinde Oluşturuyor Bu <NewDataSet> ve <Table> Değiştirme İmkanımız Olabilirmi Kendi İstediğimiz Değeri Verebilirmiyiz.
    3 Aralık 2012 Pazartesi 19:21
  • string classına ait replace fonksiyonu ile yapabilirsiniz.

    burhansuleymanvural@windowslive.com

    3 Aralık 2012 Pazartesi 19:24
  • Yapabildiniz mi?

    burhansuleymanvural@windowslive.com

    3 Aralık 2012 Pazartesi 20:00
  • Evet Burhan Bey Oldu Çok Teşekkür Ederim. Hayırlı Akşamlar.

    Son Olarak Kod Parçasını Paylaşayım Yararlanmak İsteyenler Olabilir.

        public string DataSetStringOlarakAl(DataSet ds)
        {
          StringWriter sw = new StringWriter();
          ds.WriteXml(sw);
          string sonuc = sw.ToString();
          sonuc = sonuc.Replace("NewDataSet", "GetCategories");
          sonuc = sonuc.Replace("Table", "Categories");
          return sonuc;
        }

    3 Aralık 2012 Pazartesi 20:08
  • İyi çalışmalar...

    burhansuleymanvural@windowslive.com

    3 Aralık 2012 Pazartesi 20:59