Başlangıç

Asp.NET İle XML Dosyasında Filtreleme ve Arama İşlemleri, Sonuçları Başka Bir XML Dosyaya Yazma ve Gridview Nesnesinde Gösterme -4

1 Yorum


Asp.NET İle XML Dosyasında Filtreleme ve Arama İşlemleri, Sonuçları Başka Bir XML Dosyaya Yazma ve Gridview Nesnesinde Gösterme için daha önce anlatılan XML konularını ve Örneklerini yapmış olmakta fayda var(1, 2, 3). Bu örneklerin devamı olarak aşağıdaki örneği XML belge içinde arama veya filtreleme işleri için kullanabilirsiniz.

Önce yeni bir  Asp.Net Websitesi oluşturun oluşturulan web Sayfasına bir adet buton, bir adet gridview nesnesi ekledim.xmlfiltreleme1

  • xmlfiltre.aspx dosyasının içeriği;

<asp:Button ID=”Button1″ runat=”server” onclick=”Button1_Click” Text=”Button” />
<asp:GridView ID=”GridView1″ runat=”server”>
</asp:GridView>

  • xmlfiltre.aspx.cs dosyasının içeriği;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Xml;

//ilgili namespaceleri eklemeyi unutmayın

public partial class xmlfiltre : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
XmlReader xmlFile;
xmlFile = XmlReader.Create(Server.MapPath(“xml/KullaniciBilgirapor.xml”), new XmlReaderSettings());//xml dosyasına ulaştık
DataSet ds = new DataSet();//yeni bir dataset oluşturuldu
DataView dv;
ds.ReadXml(xmlFile);//dataset içine xml bilgileri alındı
dv = new DataView(ds.Tables[0], “Limit > = 3”, “KullaniciAdi”, DataViewRowState.CurrentRows);//data set içindeki verilerden şarta uyanlar dataviewe alındı
GridView1.DataSource = dv; //gridviewin veri kaynağı olarak data view belirlendi
GridView1.DataBind();//dataviewde bulunan veriler grid içineyazdırıldı.
dv.ToTable().WriteXml(Server.MapPath(“xml/sonuc.xml”));//Dataviewde bulunan veriler xml bir dosya içerisine aktarıldı.
}
}

Reklamlar

Asp.Net ile XML Dosyasını Listeleme -3

2 Yorum


 Bir Asp.Net Web Site oluşturunuz. Ve xmlverilisteleme.aspx isimli bir sayfa oluşturdum. Sayfa içine bir adet buton ve bir adet label ve iki adette Listbox yerleştirdim. Daha önceki konuda içine veri eklediğimiz xml dosyasına okumak için  Butona tıklayarak aşağıdaki kodu yazdım.

xmlresim3

using System.Xml;
using System.IO;//Bu namespaceleri mutlaka ekleyin.

protected void Button1_Click(object sender, EventArgs e)
{
if (File.Exists(Server.MapPath(“xml/KullaniciBilgirapor.xml”)))
{
ListBox1.Items.Clear();
ListBox2.Items.Clear();//her yüklemede üst üste yazmaması için listbox temizlenir
ListBox1.Items.Add(new ListItem(“Kullanıcı Adı”,”0″));//listbox1 sutun başlığı
ListBox2.Items.Add(new ListItem(“Limit”, “0”));//listbox2 sutun başlığı
XmlDocument belge = new XmlDocument();
belge.Load(Server.MapPath(“xml/KullaniciBilgirapor.xml”));//raporumuz alındı
XmlElement root = belge.DocumentElement;
XmlNodeList kayitlar = root.SelectNodes(“/Rapor/Kullanicilar”);//okunacak node elementleri seçildi.

ListItem listkulad, listlimit;
foreach (XmlNode dugum in kayitlar)//Xml içindeki tüm kayıtlar dönülür
{
listkulad = new ListItem();//listbox1 eklenecek lisitemler
listlimit = new ListItem();//listbox2 eklenecek lisitemler
listkulad.Text=dugum[“KullaniciAdi”].InnerText;//node[“KayıtAdı”].InnerText ile istenilen kayıtlar alınır
listkulad.Value = dugum[“KullaniciAdi”].InnerText;
listlimit.Text=dugum[“Limit”].InnerText;
listlimit.Value = dugum[“Limit”].InnerText;
ListBox1.Items.Add(listkulad);//listbox elemanları arasına eklendi
ListBox2.Items.Add(listlimit);
}

Label1.Text = “Toplam açılan kullanıcı sayısı : ” + kayitlar.Count.ToString();//kayitlar.Count ile xml içindeki toplam kayıt sayısı okunabilir.
}
else
{
Label1.Text = “Rapor bulunamadı !”;
}
}

Asp.Net ile XML Dosyasına Ekleme Yapma -2

3 Yorum


 Bir Asp.Net Web Site oluşturunuz. Ve xmldosyayakayitekle.aspx isimli bir sayfa oluşturdum. Sayfa içine bir adet buton ve bir adet label yerleştirdim. Daha önceki konuda oluşturduğumuz xml dosyasına yazmak için  Butona tıklayarak aşağıdaki kodu yazdım.

xmlresim2

using System.Xml;
using System.IO;//Bu namespaceleri mutlaka ekleyin.

protected void Button1_Click(object sender, EventArgs e)
{
if (File.Exists(Server.MapPath(“xml/KullaniciBilgirapor.xml”)))
{
XmlDocument belge = new XmlDocument();
belge.Load(Server.MapPath(“xml/KullaniciBilgirapor.xml”));
XmlElement UserElement = belge.CreateElement(“Kullanicilar”);//element ekledik
UserElement.SetAttribute(“id”, Guid.NewGuid().ToString());//elemente bir attribute atadık

XmlElement kullaniciadi = belge.CreateElement(“KullaniciAdi”);//Kullanicilar elementi içine bir kayıt ekledik
kullaniciadi.InnerText = “admin”;//kayıt için değer atadık
UserElement.AppendChild(kullaniciadi);//kayıt için parent atadık (UserElemet parenti)

XmlElement kullanimlimit = belge.CreateElement(“Limit”);//Kullanicilar elementi içine bir kayıt ekledik
kullanimlimit.InnerText = “5”;//kayıt için değer atadık
UserElement.AppendChild(kullanimlimit);//kayıt için parent atadık (Kullanicilar parenti)

belge.DocumentElement.AppendChild(UserElement);//xml dosyamıza element ve kayıtları ekledik

XmlTextWriter xmleEkle = new XmlTextWriter(Server.MapPath(“xml/KullaniciBilgirapor.xml”), null);//xml dosyamıza fiziksel olarak kayıtları yazıyoruz
xmleEkle.Formatting = Formatting.Indented;
belge.WriteContentTo(xmleEkle);//kayıtlar eklendi
xmleEkle.Close();//dosya kapatıldı
Label1.Text = “Kayıtlar Eklendi”;
}
else
{
Label1.Text=”Rapor dosyası bulunamadı.”;
}
}

Asp.Net ile XML Dosyası Oluşturma -1

3 Yorum


XML genel amaçlı etiket tabanlı dildir. XML ile uygulamalar arasında veri aktarmak ve saklamak için çok kolaydır. HTML dilinin, bir alt kümesidir SGML (Standard Generalized Markup Language). XML platformdan bağımsız bir dildir. XML biçimlendirilmiş bilgileri herhangi bir platformda (İşletim Sistemleri) kullanılabilir. XML kendini tanımlayan bir dildir ve içerdiği bilgileri belirlemek için verilerin yanı sıra kuralları verir.

XML bünyesindeki veriyi biçimlendirmek için XSL ve CSS gibi çeşitli biçimlendiriciler kullanılır ve bunlar servera gelmeden dönüşüm sağlayarak serverın üzerine düşen yükü azaltırlar.

XML dosyaları veri içeren etiketlerden oluşur. Genellikle başlangıç ​​etiketi ve bitiş etiketi verileri tutmak için kullanılır. Bir XML etiket adı “Başlık” oluşturmak istiyorsanız Örneğin, başlangıç ​​etiketi gibi <Baslik> ve bitiş etiketi gibi </ Baslik> . Siz bu etiketler arasına bilgi doldurabilirsiniz.

 <Baslik> Başlık İçerik </ Baslik>

Bir XML dosyası oluştururken, bazı önemli noktaları hatırlamak zorundayız:

* XML küçük harfe duyarlıdır

 <Baslik> <baslik> olarak aynı değildir .

* Etiketler açıldıkları bu ters sırada kapatılmalıdır

 Burada <birinci etiket> <ikinci etiket> Veri </ ikinci etiket> </ birinci etiket>

Örnek XML Dosya

<?xml version=”1.0″?>
<!–Kullanıcı Bilgileri Detayları Raporu–>

<uyeler>

  <uye id="1">
      <ad>A</ad>
      <soyad>B</soyad>
  </uye>
  <uye id="2">
      <ad>C</ad>
      <soyad>D</soyad>
  </uye>
  <uye id="5">
      <ad>E</ad>
      <soyad>F</soyad>
  </uye>
  <uye id="8">
      <ad>G</ad>
      <soyad>H</soyad>
  </uye>
</uyeler>

Sonuç olarak Bir Asp.Net Web Site oluşturunuz. Ve xmlolustur.aspx isimli bir sayfa oluşturdum. Sayfa içine bir adet buton ve bir adet label yerleştirdim. Ana dosyaların bulunduğu klasörde xml adında bir klasör oluşturdum. Butona tıklayarak aşağıdaki kodu yazdım.

xmlresim1

using System.Xml;
using System.IO;//Bu namespaceleri mutlaka ekleyin.

protected void Button1_Click(object sender, EventArgs e)
{
if (!File.Exists(Server.MapPath(“xml/KullaniciBilgirapor.xml”)))//dosya yoksa
{
try
{
XmlTextWriter xmlolustur = new XmlTextWriter(Server.MapPath(“xml/KullaniciBilgirapor.xml”), null);//ilk parametre dosyanın oluşturulacağı yol, ikinci parametre encoding dil kodlama

xmlolustur.WriteStartDocument();//xml içinde element oluşturma işlemine başlandı

xmlolustur.WriteComment(“Kullanıcı Bilgileri Detayları Raporu”);//dosya içine bir açıklama satırı eklendi

xmlolustur.WriteStartElement(“Rapor”);//bir etiket oluşturduk

xmlolustur.WriteEndDocument();//element oluşturma işlemi bitti
Label1.Text = “Dosya Oluşturuldu”;
xmlolustur.Close();//dosya oluşturuldu ve işlemler tamamlandı
}
catch {
Label1.Text = “Dosyada Hata oldu. Lütfen Tekrar Deneyin”;
}
}
}

Böylece Xml Dosyası Oluşmuş oldu. Bir Sonraki Konuda Dosyaya yazma ve Listleme İşlemlerini yapacağız.

Asp.NET İle BOT Yapımı (Sadece Belli Etiketler Arası Çekme, Haber Bot Yapımı)

Yorum bırakın


Asp.NET İle BOT Yapımı (Sadece Belli Etiketler Arası Çekme) örneğin bir haber sayfasından öne çıkan haberleri almak istiyorsunuz. Bunun için bir önceki konuda anlatılanlara ek olarak bazı string fonksiyonlardada yararlanarak bir haber botu yapabiliriz.

Bunun için sayfaya bir adet buton, 1 adet text kutusu, 1 adet label nesnesi yerleştirdim.

  • haberbotyapimi.aspx sayfasındaki nesnelerin kodları;

<asp:TextBox runat=”server” id=”txtAdres”></asp:TextBox>

<asp:Button ID=”btnVeriCek” runat=”server” Text=”Veri Çek”
onclick=”btnVeriCek_Click” />
<br />
<asp:Label ID=”lblGelenVeri” runat=”server”></asp:Label>

bothabercek

  • haberbotyapimi.aspx.cs sayfamızda uygun namespaceleri eklemeyi unutmayın;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Globalization;
using System.IO;
using System.Text;

// daha sonra butona tıkladığınızda oluşan btnVeriCek_Click olayındaki kodlar şöyle olacak.

protected void btnVeriCek_Click(object sender, EventArgs e)
{
string adresal = “http:// + txtAdres.Text;
WebResponse GelenCevap;
WebRequest adresistegi = HttpWebRequest.Create(adresal);
GelenCevap = adresistegi.GetResponse();
//CultureInfo tr = new CultureInfo(“tr-TR”);//dil ayarı yapmak için kapattığım bu iki satırda kullanılabilir. ama ben aşağıdaki gibi kullandım
//StreamReader SayfaKaynakBilgisi = new StreamReader(GelenCevap.GetResponseStream(), Encoding.GetEncoding(tr.TextInfo.ANSICodePage));
StreamReader SayfaKaynakBilgisi = new StreamReader(GelenCevap.GetResponseStream(), Encoding.GetEncoding(“utf-8”));//dil problemi olmaması için sayfaların kaynak kodundan kullandığı sistemi öğrenin ve yazın (Encoding.GetEncoding(“ISO-8859-1”) )kaynak kodu alma
string kaynakbilgiyial = SayfaKaynakBilgisi.ReadToEnd();
int HaberBaslangic = kaynakbilgiyial.IndexOf(“<td class=\”ana_haber_adi\”>”)-137;//Başlangıç noktası kaynak sayfamdaki kodlarda belirleyici etiket sayısı azdı onun için haberlerin bulunduğu belirleyici noktadan <table> etiketine kadar geri gidip tablo başına ulaşmaya çalıştım. burası alınacak sayfanın kaynak kodlarına göre değişir.
int HaberBitis = kaynakbilgiyial.Substring(HaberBaslangic).IndexOf(“SON HABER YORUMLARI”)-125;//yukarıdaki açıklama burası içinde geçerli. burada yukara belirlenen başlangıç noktsından itibaren nereye kadar alınacağı  belrleniyor. burası alınacak sayfanın kaynak kodlarına göre değişir.
string IstenenBolum =kaynakbilgiyial.Substring(HaberBaslangic, HaberBitis);
IstenenBolum = IstenenBolum.Replace(“src=\””, “src=\”http://www.turkegitimsen.org.tr/);//sayfada yollar kısa yazılmıştı bende resimleri göstersin diye tüm yolları uzun olarak değiştirdi. burası alınacak sayfanın kaynak kodlarına göre değişir.
lblGelenVeri.Text = IstenenBolum;
}

Ben denedim güzel bir uygulama oldu. Yukarıdaki örnek dil ayarları ve etiket aralığı kısmı alınacak kaynak sayfa  ya göre bakılarak değiştirilmeli ve dil ayarları da sayfaya göre ayarlanmalıdır.

Asp.NET İle BOT Yapımı (Sayfa Başlığını Çekme)

Yorum bırakın


Sayfada iki etiket arasını çekebilirsiniz. Önce basit olan <title> etiketleri arasını çekelim. Sayfaya 2 adet textbox, 1 tane de button yerleştirelim.

  • Oluşan vericekme1.aspx sayfasının kodları;

<br />
Adres:Http://<asp:TextBox ID=”txtAdresBilgisi” runat=”server” Height=”16px”
Width=”289px”></asp:TextBox>
<br />
Başlık Bilgisi:<asp:TextBox ID=”txtGelenVeri” runat=”server” Height=”21px”
Width=”448px”></asp:TextBox>
<br />
<asp:Button ID=”btnVeriCek” runat=”server” onclick=”btnVeriCek_Click”
Text=”Veri ÇEK” />
botbaslikcek

  • vericekme1.aspx.cs sayfasının kod bölümünde bazı namespaceler mutlaka eklenmeli;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Globalization;
using System.IO;
using System.Text;// bu namespacelerden eksik olanları ekleyin.

// daha sonra butona tıkladığınızda oluşan btnVeriCek_Click olayındaki kodlar şöyle olacak.

protected void btnVeriCek_Click(object sender, EventArgs e)
{
string adresal = “http:// + txtAdresBilgisi.Text;// adres bilgisinde http:// olmadığını düşüdük varsa silerek yazın ve ya kontrol kodları ekleyin
WebResponse GelenCevap;
WebRequest adresistegi = HttpWebRequest.Create(adresal);
GelenCevap = adresistegi.GetResponse();
StreamReader SayfaKaynakBilgisi = new StreamReader(GelenCevap.GetResponseStream(), Encoding.GetEncoding(“utf-8”));//dil problemi olmaması için sayfaların kaynak kodundan kullandığı sistemi öğrenin ve yazın Encoding.GetEncoding(“ISO-8859-1”) kaynak kodu alma
string kaynakbilgiyial = SayfaKaynakBilgisi.ReadToEnd();
int titlebaslangic = kaynakbilgiyial.IndexOf(“<title>”) + 7;//Kaynak kod içinden başlık kısmını arama
int titlebitis = kaynakbilgiyial.Substring(titlebaslangic).IndexOf(“</title>”);
txtGelenVeri.Text = kaynakbilgiyial.Substring(titlebaslangic, titlebitis);// iki etiket arasında kalan kısmı text kutusunda yazdırdık.
}

Sonuç olarak BOT işleminde kullanacağınız sayfaya göre alınan etiket bilgisini istediğiniz gibi değiştirerek ve ya geliştirerek değişik işlemler yapılabilir.

Older Entries

Bana Silverlight Anlat

meslek lisesi ders notları

Eren ÇOLAK

Yazılım Mühendisi Olmak Yolunda İlerliyor...