En iyi yanıtlayıcılar
Dinamik xml Oluşturma ?

Soru
-
Arkadaşlar aşağıda vereceğim örneği code behind bölümünde dinamik olarak oluşturulacak xml dökümanına nasıl aktarabilir, görüntüleyebilir ve özelliklerine ulaşabilirim ?
<?xml version="1.0" encoding="utf-8" ?>
- <ePaymentMsg VersionInfo="2.0" TT="Response" RM="Direct" CT="Money">
- <Operation ActionType="Sale">
- <OpData>
<MerchantInfo MerchantId="006100200140200" />
- <ActionInfo>
<DateInfo LocalDate="20110708" LocalTime="1719" />
- <TrnxCommon TrnxID="edd3539d-e24f-443f-8d9d-611ba04e4236" Protocol="156">
<AmountInfo Currency="949" Amount="1.00" />
</TrnxCommon>
<POSTrnxID LIDM="111111111111111111111111111111"
RRPID="111111111111111111111111111111" />
<HostResponse AuthCode="462192" HostRefNo="11111111" HostDate="0708"
ResultCode="0000" />
<BatchInfo BatchId="3" Stan="120" />
- <PaymentTypeInfo>
<InstallmentInfo NumberOfInstallments="0" />
</PaymentTypeInfo>
</ActionInfo>
<CustomData />
</OpData>
</Operation>
</ePaymentMsg>
Yanıtlar
-
xml dosyada mı? (: Neden böyle bişey gerekti ki?
Öyleyse;
XDocument xd = XDocument.Load(Server.MapPath("pos.xml")); ya da XDocument xd = XDocument.Parse(File.ReadAllText(Server.MapPath("pos.xml")));
şeklinde yükleyin.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Barış SarıtaşModerator 17 Şubat 2014 Pazartesi 13:05
Tüm Yanıtlar
-
Linq2Xml ile yapabilirsin;
var xd = new XDocument(new XElement("ePaymentMsg", new XAttribute("VersionInfo", "2.0"), new XAttribute("TT", "Response"), new XAttribute("RM", "Direct"), new XAttribute("CT", "Money"), new XElement("Operation", new XAttribute("ActionType", "Sale")), new XElement("OpData", new XElement("MerchantInfo", new XAttribute("MerchantId", "006100200140200") . . .
gibi
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak Öneren Barış SarıtaşModerator 14 Şubat 2014 Cuma 07:06
-
Teşekkürler.. Peki verdiğiniz örnekteki
"MerchantId", "006100200140200" gibi sabit olan bölüme benim yukarda verdiğim örnekteki xml
deki MerchantId="006100200140200" bölümünü dinamik olarak nasıl ekletebilirim ? yani o xmldeki bölümleri nasıl
ekleyebilirim sabit değerli yerlere ? sadece 1 tane örnek verseniz yeterli olur..
Web Developer
-
sorunuzu anlamadım, benim verdiğim örnek , verdiğiniz xml i sıfırdan oluşturuyor. Sabit değerlerin yerine değişkenlerinizi koyabilirsiniz.
new XElement("MerchantInfo", new XAttribute("MerchantId", textBox1.Text) ya da new XElement("MerchantInfo", new XAttribute("MerchantId", databaseDenGetlen.BirAlan)
gibi
Bu xml sanal pos ile alakalı gibi algıladım. Bu işleri yapacak bir servis, dll vs yok mu? Normalde bunlarla uğraşmamanız gerekiyor.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
Hocam soru şu bankaya işlem gönderiliyor ve banka geriye yukarda ilk yazdığım xml veriyi döndürüyor..
Benim bu xml i dinamik olarak oluşturacağım bir xml dosyasına yükleyip oluşan dinamik xml dökümanındaki <hostresponse authcode="462192" hostdate="0708" hostrefno="11111111" resultcode="0000">satırındaki ResultCode="0000" bölümünün döndürdüğü değeri (0000) elde etmem gerekiyor.. İnşaAllah derdimi anlatabilmişimdir :) eksik bilgi vermişim..</hostresponse>
Web Developer
-
(: dinamik kelimesi yanlış algılamama neden oluyor. Sen yeni bir doc oluşturmak istemiyorsun, var olan doc'un bir attribute'unu okumak istiyorsun;
XDocument xd = XDocument.Parse(bankadanGelenXmlMetni); string resultCode = xd.Descandants("hostresponse").First().Attributes("resultcode ").First().Value;
şeklinde alabilirsin.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
-
Hocam dediğini yaptım bu seferde şöyle bir hata aldım..
Kök düzeyindeki veriler geçersiz. Satır 1, konum 1.
Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin.
Özel Durum Ayrıntıları: System.Xml.XmlException: Kök düzeyindeki veriler geçersiz. Satır 1, konum 1.
Kaynak Hatası:Satır 21: xdd.Load(Server.MapPath("pos.xml")); Satır 22: //var kit = xdd.GetElementsByTagName("hostresponse")[0].ChildNodes[0].Value; Satır 23: XDocument xd = XDocument.Parse(Server.MapPath("pos.xml")); Satır 24: string resultCode = xd.Descendants("hostresponse").First().Attributes("resultcode ").First().Value;
Label1.Text = resultCode.ToString();
Web Developer
-
xml dosyada mı? (: Neden böyle bişey gerekti ki?
Öyleyse;
XDocument xd = XDocument.Load(Server.MapPath("pos.xml")); ya da XDocument xd = XDocument.Parse(File.ReadAllText(Server.MapPath("pos.xml")));
şeklinde yükleyin.
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak İşaretleyen Barış SarıtaşModerator 17 Şubat 2014 Pazartesi 13:05
-
localde test için dönen cevabı gerçek xml e yapıştırarak oluşturduğum pos.xml dosyasındaki resultcode bölümünü elde ettim bu şekilde..
Yalnız sunucuda bu sabit xml yerine bankadan dönen kod ile test etmeye çalışırken hata alıyorum..
Kodlar :
protected void Button1_Click(object sender, EventArgs e)
{
string request = string.Empty;
string response = string.Empty;
request = CreateSaleRequest();
response = Send(request);
//XDocument xd = XDocument.Load(response.ToString());
XDocument xd = XDocument.Parse(File.ReadAllText(response));
string resultCode = xd.Descendants("hostresponse").First().Attributes("resultcode").First().Value;
if (resultCode == "0000") Label1.Text = "İşlem Başarılı.." + resultCode;
else if (resultCode == "0") Label1.Text = "İşlem Başarılı.." + resultCode;
else Label1.Text = "İşlem Başarısız !.." + resultCode;
}Hata şöyle;
Illegal characters in path.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentException: Illegal characters in path.
Source Error:Line 27: response = Send(request); Line 28: //XDocument xd = XDocument.Load(response.ToString()); Line 29: XDocument xd = XDocument.Parse(File.ReadAllText(response)); Line 30: string resultCode = xd.Descendants("hostresponse").First().Attributes("resultcode").First().Value; Line 31: if (resultCode == "0000") Label1.Text = "İşlem Başarılı.." + resultCode;
Web Developer
-
Birazcık dikkat lütfen (:
XDocument xd = XDocument.Parse(response);
e-mail: onay[nokta]yalciner[at]hotmail[nokta]com
- Yanıt Olarak Öneren Barış SarıtaşModerator 14 Şubat 2014 Cuma 12:50