cari

Rumah  >  Soal Jawab  >  teks badan

xml - php domdocument Cara membaca dokumen menggunakan url

Oleh kerana keperluan projek, saya perlu menggunakan php untuk mengubah suai nilai pada xml. Gunakan DOMdocument untuk melakukannya.
Kod adalah seperti berikut

 $xmlpatch ='http://www.*****.com/vr/wtest/vtour/tour.xml';
        $xml = simplexml_load_file($url);
        $doc = new DOMDocument();
        $doc -> formatOutput = benar;
        if($doc -> load($xmlpatch)) {
        $root = $doc ->
        $elm = $root -> getElementsByTagName('scene');
        $hotspot = $elm[1] ->getElementsByTagName('hotspot');
        $hotspot[0] ->setAttribute('videourl',$videourl1);
        $hotspot[1] ->setAttribute('onclick',$videourl2);
    
    
        $doc->save($xmlpatch);
        } 

Kod itu sepatutnya baik Masalahnya ialah saya pada asalnya menulis laluan relatif dalam $xmlpatch Kerana saya menggunakan pakej persekitaran tempatan, tiada masalah.
Tetapi fail php persekitaran dan xml pada pelayan diletakkan merentas domain, jadi saya menukarnya kepada laluan mutlak. Tetapi saya mendapati bahawa skrip gagal. Seseorang dalam talian mencadangkan menggunakan simplexml untuk melakukannya. Tetapi saya memang boleh membacanya selepas bereksperimen, tetapi saya tidak dapat mencari fungsi untuk mengubah suai atribut pada w3cschool.
Tolong bantu saya, terima kasih banyak-banyak Bolehkah anda beritahu saya cara mengubah suai atribut simplexml, atau cara membaca domdocument menggunakan url?

伊谢尔伦伊谢尔伦2826 hari yang lalu579

membalas semua(1)saya akan balas

  • 迷茫

    迷茫2017-05-16 13:14:41

    Mula-mula gunakan curl untuk membaca maklumat fail xml, dan kemudian gunakan DOMdocument atau simplexml untuk memprosesnya.

    <?php
    
    $url = 'http://www.abc.com/sitemap.xml';
    
    $header = array(
        'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:45.0) Gecko/20100101 Firefox/45.0',
        'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
        'Accept-Encoding: gzip, deflate',
    );
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip');
    curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
    $data = curl_exec($curl);
    curl_close($curl);
    
    if ($xml = simplexml_load_string($data)) {
        $xml->row->name = 'new_name'; // Edit XML Object node
        echo $xml->asXML();
    }

    balas
    0
  • Batalbalas