Merhaba arkadaşlar size bu makalemde C# ile, xml ve xml ChildNodes ile veri ekleme veri listeleme ve veri silme mantığını anlatacağım
Örnek olarak internette hoşumuza giden bir xml beslemeli flash banner görürüz. Bu flashı kullanmak isteriz . Bu flash banneri dinamik olarak güncellemek için size kodmantığını anlatacağım .
Default.aspx Dosyamız
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
.style1
{
height: 29px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<br />
<table border='0' cellpadding='3' cellspacing='1'width='500' bgcolor='#e5e5e5'>
<tr bgcolor='white'>
<td colspan="2">YEN BANNER EKLE</td>
</tr>
<tr bgcolor='white'>
<td width='150'>Resim</td>
<td>
<asp:FileUpload ID="Fu_resim" runat="server" Width="300px" />
</td>
</tr>
<tr bgcolor='white'>
<td>TTLE(Balk)</td>
<td>
<asp:TextBox ID="txt_title" runat="server" Width="300px"></asp:TextBox>
</td>
</tr>
<tr bgcolor='white'>
<td>Aklama</td>
<td>
<asp:TextBox ID="txt_aciklama" runat="server" Height="102px"
TextMode="MultiLine" Width="327px"></asp:TextBox>
</td>
</tr>
<tr bgcolor='white'>
<td class="style1">Nasl Alsn</td>
<td class="style1">
<asp:DropDownList ID="drp_pencere" runat="server">
<asp:ListItem Value="_blank">Yeni Sayfada</asp:ListItem>
<asp:ListItem Value="_self">Ayn Sayfada</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr bgcolor='white'>
<td>Adres</td>
<td>
<asp:TextBox ID="txt_url" runat="server" Width="300px"></asp:TextBox>
</td>
</tr>
<%--<tr bgcolor='white'>
<td>bar_color</td>
<td>0xffffff</td>
</tr>
<tr bgcolor='white'>
<td>bar_transparency</td>
<td>40</td>
</tr>
<tr bgcolor='white'>
<td>caption_color</td>
<td>0xffffff</td>
</tr>
<tr bgcolor='white'>
<td>caption_transparency</td>
<td>60</td>
</tr>
<tr bgcolor='white'>
<td>stroke_color</td>
<td>0xffffff</td>
</tr>
<tr bgcolor='white'>
<td>stroke_transparency</td>
<td>60</td>
</tr>
<tr bgcolor='white'>
<td>slideshowTime</td>
<td>5</td>
</tr>--%>
<tr bgcolor='white'>
<td colspan="2" align="center">
<asp:Button ID="Button1" runat="server" Text="EKLE" Width="70"
style="height: 26px" onclick="Button1_Click1" />
</td>
</tr>
</table>
<hr />
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</div>
</form>
</body>
</html>
Default.aspx.cs dosyamız
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;//ncelikle projemize bunu dahil etmemeiz gerekmektedir
using System.Text;//ncelikle projemize bunu dahil etmemeiz gerekmektedir
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.Params["islem"] == "sil")//Burada Veri siliyorum
{
int index;
index = Convert.ToInt32(Request.Params["index"]);
string dosyayolu = Server.MapPath("banner.xml");
XmlDocument doc = new XmlDocument();
doc.Load(dosyayolu);
//doc.DocumentElement.RemoveChild(doc.DocumentElement.ChildNodes[index]);
doc.DocumentElement.RemoveChild(doc.ChildNodes[2].ChildNodes[index]);
doc.Save(dosyayolu);
Response.Redirect("Default.aspx");
}
xmlbanner();
}
}
public void veriekel()//Bu class veri eklemek iin
{
string KaydedilenesimlerinAdi = DateTime.Now.ToString().Replace(".", "").Replace(" ", "").Replace(":", "");//Resm admz ben tarih olarak deitiriyorum
string resimyolu = "content/images/";//Kaydedilecek resim yolunu burada belirliyorum
string kaydedilcekresimadi = KaydedilenesimlerinAdi + Fu_resim.FileName;//Kaydedilecek resim ad va uzants buradan ayarlyorum
string yoltoplam = resimyolu + kaydedilcekresimadi.ToString();
Fu_resim.PostedFile.SaveAs(Server.MapPath(yoltoplam.ToString()));//Burada resmi belirlemi oldugum yeni isimde ve belirlemi oldugum klasore kaydettirme ilemini gerekletiriyorum
//Evet burada xml dosyama verilerimi kaydettirme ilemi balyor :)
string dosyayolu = Server.MapPath("banner.xml");//xml Dosyamn ad ve yolu
XmlDocument doc = new XmlDocument();
doc.Load(dosyayolu);
XmlElement element = doc.CreateElement("item"); //xml deki item elementinin arasna yazdracagm iin bunu yazmam gerekr
XmlElement path = doc.CreateElement("path");//Rsim yolu
path.InnerText = yoltoplam;
XmlElement title = doc.CreateElement("title");//Title Acklama
title.InnerText = txt_title.Text;
XmlElement caption = doc.CreateElement("caption");//Buras normal aklama
caption.InnerText = txt_aciklama.Text;
XmlElement target = doc.CreateElement("target");//Buras linke tkladgmzda sayfamz nasl gdece yen penceredem yoksa ayn pencere ierisindemi
target.InnerText = drp_pencere.SelectedItem.Value;
XmlElement link = doc.CreateElement("link");//Buras sayfann gidecegi adres
link.InnerText = txt_url.Text;
XmlElement bar_color = doc.CreateElement("bar_color");//Buras border renkleri ister degitirebilirsiniz isterseniz kalsn
bar_color.InnerText = "0xffffff";
XmlElement bar_transparency = doc.CreateElement("bar_transparency");//Bura bu eklde kalsn
bar_transparency.InnerText = "40";
XmlElement caption_color = doc.CreateElement("caption_color");//Bura bu eklde kalsn
caption_color.InnerText = "0xffffff";
XmlElement caption_transparency = doc.CreateElement("caption_transparency");//Bura bu eklde kalsn
caption_transparency.InnerText = "60";
XmlElement stroke_color = doc.CreateElement("stroke_color");//Bura bu eklde kalsn
stroke_color.InnerText = "0xffffff";
XmlElement stroke_transparency = doc.CreateElement("stroke_transparency");//Bura bu eklde kalsn
stroke_transparency.InnerText = "60";
XmlElement slideshowTime = doc.CreateElement("slideshowTime");//Animasyon kac saniye sonra dierine gecsin
slideshowTime.InnerText = "5";
//Yukarda kaydettrecegm degerler aldm imdi asagda xml dosyama rahatlkla ekleme yapabileyim :)
element.AppendChild(path);
element.AppendChild(title);
element.AppendChild(caption);
element.AppendChild(target);
element.AppendChild(link);
element.AppendChild(bar_color);
element.AppendChild(bar_transparency);
element.AppendChild(caption_color);
element.AppendChild(caption_transparency);
element.AppendChild(stroke_color);
element.AppendChild(stroke_transparency);
element.AppendChild(slideshowTime);
doc.DocumentElement.AppendChild(element);
doc.Save(dosyayolu);//xml dosyamn yolu
}
private void xmlbanner()//Bu calss Veri listeleme yapacagz
{
XmlDocument myDoc = new XmlDocument();
myDoc.Load(Server.MapPath("banner.xml"));
for (int i = 2; i < myDoc.ChildNodes.Count; i++)// evet burada dongu yapyorum xml dosyamn cn dedk item kactane var sayyorum okadar ekrana yazdracagm :)
{
//Response.Write(myDoc.ChildNodes[i].InnerText.ToString());
//Response.Write("<hr>");
if (myDoc.ChildNodes[i].ChildNodes.Count > 2)// evet nekadar oldugunu buldum ama item iindede birkactane saylacak degelerler var ben bunlarda saymadan ekrana nasl yazdyarm onuda burada saydryorum
{
for (int j = 2; j < myDoc.ChildNodes[i].ChildNodes.Count; j++)// evet nekadar oldugunu buldum ama item iindede birkactane saylacak degelerler var ben bunlarda saymadan ekrana nasl yazdyarm onuda burada saydryorum
{
StringBuilder tb = new StringBuilder();
tb.Append("<table border='0' cellpadding='3' cellspacing='1'width='500' bgcolor='#e5e5e5'>");
tb.Append("<tr bgcolor='white'>");
tb.Append("<td width='150'>GNCELLE</td>");
tb.Append("<td>");
tb.Append("<a href='default.aspx?islem=sil&index=" + j.ToString() + "'>SL</a>");
tb.Append("</td>");
tb.Append("</tr>");
tb.Append("<tr bgcolor='white'>");
tb.Append("<td width='150'>");
tb.Append(myDoc.ChildNodes[i].ChildNodes[j].Name.ToString());
tb.Append("</td>");
tb.Append("<td>"+j+"</td>");
tb.Append("</tr>");
#region
for (int n = 0; n < 5; n++)
{
tb.Append("<tr bgcolor='white'>");
tb.Append("<td>");
tb.Append(myDoc.ChildNodes[i].ChildNodes[j].ChildNodes[n].Name.ToString());
tb.Append("</td>");
tb.Append("<td>");
if (n == 0)
{
tb.Append("<img src='" + myDoc.ChildNodes[i].ChildNodes[j].ChildNodes[n].InnerText.ToString() + "' width='100'>");
}
else
{
tb.Append(myDoc.ChildNodes[i].ChildNodes[j].ChildNodes[n].InnerText.ToString());
}
tb.Append("</td>");
tb.Append("</tr>");
}
#endregion
tb.Append("</table>");
tb.Append("<hr />");
Label lbl2 = new Label();
lbl2.ID = "lbl2" + j;
lbl2.Text = tb.ToString();
PlaceHolder1.Controls.Add(lbl2);
}
}
}
}
protected void Button1_Click1(object sender, EventArgs e)
{
veriekel();//36.Satrdaki class veri eklemek iin yapmstk he onu buradan cagrdm
Response.Redirect("default.aspx");//Tebrikler veri eklendi Sayfay yonlendireilm :)
}
}
banner.xml dosyamız
<?
xml version="1.0" encoding="UTF-8"?>
<!--
Configuration panel -->
<
banner width="" height="" startWith="1" random="false" backgroundColor="0xffffff" backgroundTransparency="100" cellWidth="50" cellHeight="50" showMinTime="0.2" showMaxTime="1.5" blur="50" netTime="0.5" alphaNet="80" netColor="0x000000" overColor="0x473C31" normalColor="0x000000" selectedTextColor="0xffffff" selectedButtonAlpha="70" controllerVisible="true" controllerBackgroundVisible="true" prevNextVisible="true" playBtVisible="true" autoPlay="true" navigationButtonsColor="0x1a1a1a" controllerDistanceX="10" controllerDistanceY="10" controllerHeight="27" distanceBetweenControllerElements="10" distanceBetweenThumbs="7" captionY="10" captionX="10" captionWidth="390" buttonText="read more" btnNormalColor="0xffffff" btnOverColor="0x999999" readMoreBackAlpha="80" readMoreBackColor="0x473C31" paddingX="20" paddingY="15" btnSpacingW="50" btnSpacingH="5" loaderColor="0x000000">
<!--
End panel -->
<!--
If you want to customize your font use, for example:
<font color='#FFffff' size='18px' family='Times, Times New Roman'> your text </font>
You can skip all values after link, as these have a default value as well
-->
<
item>
<
path>content/images/image6.jpg</path>
<
title><![CDATA[title alan]]></title>
<
caption><![CDATA[Bu alanlar yaz iin dir.]]></caption>
<
target>_blank</target>
<
link>http://www.flabell.com</link>
<
bar_color>0xffffff</bar_color>
<
bar_transparency>40</bar_transparency>
<
caption_color>0xffffff</caption_color>
<
caption_transparency>60</caption_transparency>
<
stroke_color>0xffffff</stroke_color>
<
stroke_transparency>60</stroke_transparency>
<
slideshowTime>5</slideshowTime>
</
item>
<
item>
<
path>content/images/image8.jpg</path>
<
title><![CDATA[Title alan]]></title>
<
caption><![CDATA[Bu alanlar yaz iin dir.]]></caption>
<
target>_blank</target>
<
link>http://www.flabell.com</link>
<
bar_color>0xffffff</bar_color>
<
bar_transparency>40</bar_transparency>
<
caption_color>0xffffff</caption_color>
<
caption_transparency>60</caption_transparency>
<
stroke_color>0xffffff</stroke_color>
<
stroke_transparency>60</stroke_transparency>
<
slideshowTime>5</slideshowTime>
</
item>
<
item>
<
path>content/images/31082010180547Burn.png</path>
<
title>Deneme</title>
<
caption>tes</caption>
<
target>_blank</target>
<
link>tst</link>
<
bar_color>0xffffff</bar_color>
<
bar_transparency>40</bar_transparency>
<
caption_color>0xffffff</caption_color>
<
caption_transparency>60</caption_transparency>
<
stroke_color>0xffffff</stroke_color>
<
stroke_transparency>60</stroke_transparency>
<
slideshowTime>5</slideshowTime>
</
item>
</
banner>