2017-11-26 7 views
1

問題があります。私はこのコードを書いたが、<![CDATA[Epsilon Yayınları]]>は読めない。私がそれらを得るとき、cdataの項目は空です。代わりの解決法はありますか?XMLReaderがcdataを読み取らない

XML:

<urunler> 
    <urun> 
    <stok_kod>9789753314930</stok_kod> 
    <urun_ad><![CDATA[Kırmızı Erik]]></urun_ad> 
    <Barkod>9789753314930</Barkod> 
    <marka><![CDATA[Epsilon Yayınları]]></marka> 
    <Kdv>8,00</Kdv> 
    <satis_fiyat>9,5000</satis_fiyat> 
    <kat_yolu><![CDATA[Edebiyat>Hikaye]]></kat_yolu> 
    <resim>http://basaridagitim.com/images/product/9789753314930.jpg</resim> 
    <Yazar>Tülay Ferah</Yazar> 
    <Bakiye>2,00000000</Bakiye> 
    <detay><![CDATA[]]></detay> 
    </urun> 
</urunler> 

$xml = new XMLReader; 
    $xml->open(DIR_DOWNLOAD . 'xml/'.$xml_info['xml_file_name']); 
    $doc = new DOMDocument; 

    $product_data = array(); 

    $i=0; 


    while ($xml->read() && $xml->name !== 'urun'); 
    while ($xml->name === 'urun') { $i++; 

     $node = simplexml_import_dom($doc->importNode($xml->expand(), true)); 


     var_dump($node->urun_ad); die(); 

ダンプ印刷:

object(SimpleXMLElement)#143 (1) { 
    [0]=> 
    object(SimpleXMLElement)#145 (0) { 
    } 
} 
+1

これまでに試したことを説明してください。 –

答えて

0

それはちょうどあなたが値をプリントアウトする方法にダウンしています。あなたは、次のいずれかにvar_dumpを変更した場合、あなたは何をお使いの後に...

//var_dump($node->urun_ad) 
echo $node->urun_ad.PHP_EOL; 
echo $node->urun_ad->asXML().PHP_EOL; 

出力を取得します...注意すべき

Kırmızı Erik 
<urun_ad><![CDATA[Kırmızı Erik]]></urun_ad> 

ことの一つは、あなたが使用したい場合ということです値を別のメソッドに追加するには、文字列にキャストする必要があります(echoはこれを自動的に行います)。したがって、最初のものは(たとえば)...

+0

あなたは英雄です!たくさんのボディがとてもありがとう! –

+0

var_dump($ node-> urun_ad.PHP_EOL);死ぬ();出来た。 –

関連する問題