Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengakses Elemen Dalam Ruang Nama Tersuai Menggunakan SimpleXML PHP?

Bagaimana untuk Mengakses Elemen Dalam Ruang Nama Tersuai Menggunakan SimpleXML PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-06 03:47:02603semak imbas

How to Access Elements Within Custom Namespaces Using PHP's SimpleXML?

Perangkap Ruang Nama dengan SimpleXML PHP

Apabila menghuraikan dokumen XML dengan SimpleXML PHP, ruang nama tersuai boleh menimbulkan cabaran. Pertimbangkan XML berikut dengan ruang nama tersuai:

<code class="xml"><?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:moshtix="http://www.moshtix.com.au">
  <channel>
   <item>
    <link>qweqwe</link>
    <moshtix:genre>asdasd</moshtix:genre>
...</code>

Untuk mengakses elemen dalam ruang nama sedemikian, gelagat lalai SimpleXML tidak mudah. Begini cara untuk mengatasi cabaran ini:

Penyelesaian: Gunakan kanak-kanak() dengan Argumen Ruang Nama

Kaedah kanak-kanak() SimpleXML membolehkan anda menapis elemen berdasarkan ruang nama. Berikannya awalan ruang nama dan benar sebagai hujah kedua untuk turut mendapatkan maklumat ruang nama:

<code class="php">$rss = simplexml_load_string(...);

foreach ($rss->channel as $channel)
{
    echo 'link: ', $channel->link, "\n";
    echo 'genre: ', $channel->children('moshtix', true)->genre, "\n";
}</code>

Dalam contoh ini, outputnya ialah:

link: qweqwe
genre: asdasd

Dengan menggunakan pendekatan ini, anda boleh mengakses dan menggunakan elemen dengan berkesan dalam ruang nama tersuai apabila menghuraikan dokumen XML dengan SimpleXML PHP.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Elemen Dalam Ruang Nama Tersuai Menggunakan SimpleXML PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn