Xmlden TXmlNode değer alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Xmlden TXmlNode değer alma

Mesaj gönderen adelphiforumz »

S.A.

Delphi 2007 de yazdığım bir xml degerini TXmlNode elemanına atadıktan sonra

if Node.Name = 'XXXXX' then
str := Node.ValueAsString;

şeklinde alabiliyorduk
Fakat Ayni projeyi XE7 de çalıştırdığımda yukarıdakinin yerine

if Node.Name = 'XXXXX' then
str := Node.Value;

olarak yazdığımda değer boş geliyor hattı dinlediğimde veri doğru olarak nesnenin içine doluyor fakat ben değeri alamıyorum
Ansi ve Unicode farkındamı böyle birşey oluyor fikri olan varmıdır.

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
G.Arkas
Üye
Mesajlar: 829
Kayıt: 01 Eki 2007 07:16
Konum: İstanbul
İletişim:

Re: Xmlden TXmlNode değer alma

Mesaj gönderen G.Arkas »

Merhaba,

Kod: Tümünü seç

if Node.Name = 'XXXXX' then
str := AnsiString(Node.Value);
şeklinde dener misiniz?
Resim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Xmlden TXmlNode değer alma

Mesaj gönderen adelphiforumz »

S.A.

Malesef olmadı halen içi boş geliyor
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Xmlden TXmlNode değer alma

Mesaj gönderen adelphiforumz »

S.A.
Hata NativeXML Parser kısmından geliyor düzgün gelen datayı pars edemiyor.
NativeXML parser dosyalarının düzgün halini nerden bulabilirim. XE7 için olanını

Teşekkürler
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: Xmlden TXmlNode değer alma

Mesaj gönderen adelphiforumz »

S.A.

Yaptığım araştırmalara göre
Delphi2007 için kullanılan NativeXML parse işlemlerinden sonra "Name" ve "Value" değerlerini aynı anda verebiliyormuş
fakat XE7 içerisinde kullanılan NativeXML parse işlemlerinden sonra "Name" ve "Value" değerlerini ayrı ayrı veriyor bunun nedeni nedir
yada nasıl çözebilirim.

<?xml version='1.0' encoding='UTF-8'?><S:Envelope .......... <SAHALAR><SAHA1>123</SAHA1><SAHA2>ABCD</SAHA2></SAHALAR>.........</S:Body></S:Envelope>

Yukarıdaki değer Delphi 2007 de aşağıdaki gibi geliyor
Name = 'SAHA1', Value='123'
Name = 'SAHA2', Value='ABDC'


Yukarıdaki değer Delphi XE7 de aşağıdaki gibi geliyor
Name = 'CharData', Value='123'
Name = 'SAHA1', Value=''
Name = 'CharData', Value='ABCD'
Name = 'SAHA2', Value=''
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Kullanıcı avatarı
brs
Üye
Mesajlar: 626
Kayıt: 04 Eki 2012 03:52

Re: Xmlden TXmlNode değer alma

Mesaj gönderen brs »

Kod: Tümünü seç

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  XMLNode: IXMLNode;
begin
  try
    if IdIPWatch1.ForceCheck = True then
    begin
      with XMLDocument1 do
      begin
        ListView1.Items.Clear;
        LoadFromFile('http://xxxx.net/mobil/xml/liste.xml');
        Active := True;
        XMLNode := DocumentElement.ChildNodes.FindNode('icerik');
        while XMLNode <> Nil do
        begin
          with ListView1.Items.Add do
          begin
            Caption := IntToStr(ListView1.Items.Count);
            SubItems.Add(XMLNode.ChildNodes['title'].Text);
            SubItems.Add(XMLNode.ChildNodes['link'].Text);
            end;
          XMLNode := XMLNode.NextSibling;
        end;
      end;
    end;
  except
  end;
  XMLDocument1.Active := False;
end;
Umarım sizi doğru anlamışımdır
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Cevapla