• 03-04-2014, 13:17:21
    #1
    https://www.dropbox.com/s/84w2uk94nxeb07e/bos.XML

    Yukarıda vermiş olduğum XML dosyayı PHP ile okumaya calısıyorum. Ancak sanırım hata yaptığım bir yer var. Farklı bir XML dosyayı rahatlıkla okuyabiliyorum.

    Bunda yapmak istediğim ise XML dosyayı incelerseniz

    InvoiceLine diye kısımlar var burada Fatura içerisindeki Stok kodları var Bunları ekrana listelemek istiyorum..
  • 03-04-2014, 14:42:21
    #2
    Developer
    genchacker adlı üyeden alıntı: mesajı görüntüle
    https://www.dropbox.com/s/84w2uk94nxeb07e/bos.XML

    Yukarıda vermiş olduğum XML dosyayı PHP ile okumaya calısıyorum. Ancak sanırım hata yaptığım bir yer var. Farklı bir XML dosyayı rahatlıkla okuyabiliyorum.

    Bunda yapmak istediğim ise XML dosyayı incelerseniz

    InvoiceLine diye kısımlar var burada Fatura içerisindeki Stok kodları var Bunları ekrana listelemek istiyorum..
    Dosya olarak kullanıyorsanız

    <?php
    $xml = simplexml_load_file('xmldosyaniz.xml');
    print_r($xml); //debug
    ?>
    xml verisini değişkene atadıysanız

    <?php
    $xml = simplexml_load_string($degisken);
    print_r($xml); //debug
    ?>
  • 03-04-2014, 16:09:10
    #3
    FastPHP adlı üyeden alıntı: mesajı görüntüle
    Dosya olarak kullanıyorsanız

    <?php
    $xml = [COLOR=#000000][COLOR=#0000BB]simplexml_load_file[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'xmldosyaniz.xml'[/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
    print_r($xml); //debug
    ?>
    xml verisini değişkene atadıysanız


    <?php
    $xml = [COLOR=#000000][COLOR=#0000BB]simplexml_load_string[/COLOR][COLOR=#007700]($degisken[/COLOR][COLOR=#DD0000][/COLOR][COLOR=#007700]);[/COLOR][/COLOR]
    print_r($xml); //debug
    ?>
    Bahsettiğiniz şekilde bir sonuca ulaşamadım. Color kısımlarını neden kullanıyoruz acaba ?
  • 03-04-2014, 16:17:45
    #4
    Developer
    genchacker adlı üyeden alıntı: mesajı görüntüle
    Bahsettiğiniz şekilde bir sonuca ulaşamadım. Color kısımlarını neden kullanıyoruz acaba ?
    editörden dolayı hata oluşmuş düzelttim $xml->objeismi gibi kullanırsınız
  • 03-04-2014, 16:31:25
    #5
    FastPHP adlı üyeden alıntı: mesajı görüntüle
    editörden dolayı hata oluşmuş düzelttim $xml->objeismi gibi kullanırsınız
    Bahsettiğin gibi yaptım zaten ok Ancak şöyle bir problem oluşuyor. XML dosya mı problemlidir bilmiyorum ama XML bi incelerseniz hata olup olmadığını anlayacaksınız

    Diye başlıyor buradaki XML
    <?xml version="1.0" encoding="UTF-8"?>
    <Invoice>
    Ancak Farklı bir XML i kontrol ettiğim zaman

    <?xml version="1.0" encoding="UTF-8"?>
    <INVOICE xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <Invoice>
    Böyle çıkıyor. ve Eminim ki bu yüzdendir veriyi çekmeye başladığımda hangi objeyi cekmek istiyorsam o objeden önce kac tane obje var ise o kadar boşluk bırakıyor ekranda.
  • 03-04-2014, 16:42:05
    #6
    Developer
    genchacker adlı üyeden alıntı: mesajı görüntüle
    Bahsettiğin gibi yaptım zaten ok Ancak şöyle bir problem oluşuyor. XML dosya mı problemlidir bilmiyorum ama XML bi incelerseniz hata olup olmadığını anlayacaksınız
    Böyle çıkıyor. ve Eminim ki bu yüzdendir veriyi çekmeye başladığımda hangi objeyi cekmek istiyorsam o objeden önce kac tane obje var ise o kadar boşluk bırakıyor ekranda.

    <?php
    $veri = @file_get_contents("xmldosyaniz.xml");
    
    if(preg_match_all('/<InvoiceLineId>(.*?)<\/InvoiceLineId>/i',$veri,$kesit))
    {
        if(is_array($kesit[1]))
        {
            foreach($kesit[1] AS $InvoiceLineId)
            {
                echo "{$InvoiceLineId}<br />";
            }
        }
    }
    ?>
  • 03-04-2014, 16:53:02
    #7
    FastPHP adlı üyeden alıntı: mesajı görüntüle
    <?php
    $veri = @file_get_contents("xmldosyaniz.xml");
    
    if(preg_match_all('/<InvoiceLineId>(.*?)<\/InvoiceLineId>/i',$veri,$kesit))
    {
        if(is_array($kesit[1]))
        {
            foreach($kesit[1] AS $InvoiceLineId)
            {
                echo "{$InvoiceLineId}<br />";
            }
        }
    }
    ?>
    Teşekkür ederim asLında doğru bir işlem yapmışsınız. Ancak şöyle bir problem daha var ben burada Tüm bilgileri almalıyım aslında

    Örnek <InvoiceDate>2014-04-02</InvoiceDate>
    <OrderID>BOS-SRF-601011985478</OrderID>
    <Title>ÖZ ECZA DEPOSU A.Ş.</Title>

    Bu Gibi tüm bilgileri almam gerekli. Mesela bu XML dosya içerisinde 1 Fatura var 6 Tane de Fatura kalemi var. Ben bunları Netsis Diye bir Ticari programa aktarıyorum. yeri gelicek aynı dosya içerisinde 5 fatura 30 kalem ürün felan olacak. Bu şekilde yapmam gerekli. Farklı bir XML dosyayı bu şekilde içeriye alıp aslında işlemleri gerçekleştirdim ama bu dosya da bir problem var bi türlü alamıyorum.

    daha önce ki aldığım örnek PHP Kodları koyuyorum Aşağıda

    <?php
    	$xml = simplexml_load_file("fatura.xml");
    	$parse = "_-FO_-EF_UBL20TR10";
            $parse2 = "_-ISISTR_-EF_INVOICELINE";
    	$parse3 = "_-ISISTR_-EF_TAXTOTAL_LINE";
    	$header = "_-ISISTR_-EF_HEADER";
    	$referans = "_-ISISTR_-EF_REFERENCE";
    	$parti = "_-ISISTR_-EF_PARTY";
    	$toplam= "_-ISISTR_-EF_TAXTOTAL";
    	$note = "_-ISISTR_-EF_HEADERNOTE";
            $allow= "_-ISISTR_-EF_ALLOWANCECHARGE";
            $cari   ="_-ISISTR_-EF_PARTYID";
        $legal = "_-ISISTR_-EF_LEGALMONETARYTOT";
        $activeid = 0;
    
            foreach ($xml->$parse as $val) {
              foreach ($val->$parse2 as $voice) {
                  if ($activeid != $val->$referans->DOCUMENT_UNIQUE_KEY) {
                      $activeid = $val->$referans->DOCUMENT_UNIQUE_KEY;
                      $new = 1;
                  } else {
                      $new = 0;
                  }
    
                          ?>