Jadual Kandungan
PHP创建与解析 XML 1 (36),xml36
一.使用SimpleXML操控XML
  1.创建XML文件
  2.载入XML文件
  3.解析XML文件
  4.读出XML数据
  5.使用XPath来获取节点
二.使用DOMDocument操控XML
  1.DOMDocument解析XML
  2.DOMDocument生成XML
 
Rumah pembangunan bahagian belakang tutorial php PHP创建与解析 XML 1 (36),xml36_PHP教程

PHP创建与解析 XML 1 (36),xml36_PHP教程

Jul 13, 2016 am 09:52 AM
rentetan

PHP创建与解析 XML 1 (36),xml36

一.使用SimpleXML操控XML

要处理XML 文件,有两种传统的处理思路:SAX 和DOM。SAX 基于事件触发机制,对XML 文件进行一次扫描,完成要进行的处理;DOM 则将整个XML 文件构造为一棵DOM树,通过对DOM 树的遍历完成处理。这两种方法各有优缺点,SAX 的处理思路相对抽象,DOM 的处理过程相对烦琐,都不很适合新手的入门。PHP5 推出了一套新的XML 处理函数,即SimpleXML。名如其实,SimpleXML 本身小巧精干,只提供了少量的几个方法函数,但用它处理起XML 文件功能却非常强大,操作也非常的简单。

  1.创建XML文件

$_xml =<<<<span>xml
</span><?xml version=<span>"</span><span>1.0</span><span>"</span> encoding=<span>"</span><span>utf-8</span><span>"</span>?>
<root>
<version><span>1.0</span></version>
<info>xml解析测试</info>
<user>
<name>张三</name>
<url>http:<span>//</span><span>www.ss.com</url></span>
<author sex=<span>"</span><span>男</span><span>"</span>>张三</author>
</user>
<user>
<name>宿舍</name>
<url>http:<span>//</span><span>www.ss.com</url></span>
<author sex=<span>"</span><span>女</span><span>"</span>>谁谁谁</author>
</user>
<user>
<name>电驴</name>
<url>http:<span>//</span><span>www.ss.com</url></span>
<author sex=<span>"</span><span>男</span><span>"</span>>姓黄的</author>
</user>
</root><span>
xml;
$_sxe</span>= <span>new</span> SimpleXMLElement($_xml); <span>//</span><span>创建对象解析xml字符串</span>
$_sxe->asXML(<span>'</span><span>test.xml</span><span>'</span>); <span>//</span><span>生成XML文件</span>
Salin selepas log masuk

  2.载入XML文件

$_sxe= simplexml_load_file(<span>"</span><span>test.xml</span><span>"</span>); <span>//</span><span>载入XML文件</span>
var_dump($_sxe); <span>//</span><span>输出相关信息</span>
print_r($_sxe); <span>//</span><span>输出主要信息</span>
Reflection::export(<span>new</span> ReflectionClass($sxe)); <span>//</span><span>用反射查看详情</span>
Salin selepas log masuk

  3.解析XML文件

$_sxe= simplexml_load_file(<span>"</span><span>test.xml</span><span>"</span>); <span>//</span><span>载入XML文件</span>
var_dump($_sxe); <span>//</span><span>输出相关信息</span>
print_r($_sxe); <span>//</span><span>输出主要信息</span>
Reflection::export(<span>new</span> ReflectionClass($_sxe)); <span>//</span><span>用发射查看详情</span>
echo $_sxe->asXML();<span>//</span><span>打印整个XML</span>
Salin selepas log masuk

  4.读出XML数据

$_sxe= simplexml_load_file(<span>"</span><span>test.xml</span><span>"</span><span>);
</span><span>//</span><span>读取一级节点的值,比如version标签</span>
echo $_sxe-><span>version;
</span><span>//</span><span>如果有多个,可以设置它的数字下标</span>
echo $_sxe->version[<span>2</span><span>];
</span><span>//</span><span>如果想要全部打印出来,可以用遍历</span>
<span>foreach</span> ($_sxe->version <span>as</span><span> $_version) {
echo </span><span>'</span><span>[</span><span>'</span>.$_version.<span>'</span><span>]</span><span>'</span><span>;
}
</span><span>//</span><span>访问二级节点的name</span>
echo $_sxe->user[<span>1</span>]-><span>name;
</span><span>//</span><span>获取所有二级节点的name值</span>
<span>foreach</span> ($_sxe->user <span>as</span><span> $_user) {
echo </span><span>'</span><span>[</span><span>'</span>.$_user->name.<span>'</span><span>]</span><span>'</span><span>;
}
</span><span>//</span><span>获取二级节点的标签的属性</span>
echo $_sxe->user[<span>1</span>]->author->attributes();
Salin selepas log masuk

  5.使用XPath来获取节点

$_sxe= simplexml_load_file(<span>"</span><span>test.xml</span><span>"</span><span>);
</span><span>//</span><span>使用XPath获取节点信息</span>
$_version = $_sxe->xpath(<span>'</span><span>/root/version</span><span>'</span><span>);
echo $_version[</span><span>1</span><span>];
</span><span>//</span><span>遍历version</span>
<span>foreach</span> ($_version <span>as</span><span> $_v) {
echo </span><span>'</span><span>[</span><span>'</span>.$_v.<span>'</span><span>]</span><span>'</span><span>;
}
</span><span>//</span><span>访问二级节点</span>
$_user = $_sxe->xpath(<span>'</span><span>/root/user</span><span>'</span><span>);
echo $_user[</span><span>2</span>]-><span>name;
</span><span>//</span><span>遍历二级节点</span>
<span>foreach</span> ($_user <span>as</span><span> $_u) {
echo </span><span>'</span><span>[</span><span>'</span>.$_u->name.<span>'</span><span>]</span><span>'</span><span>;
}
</span><span>//</span><span>访问属性</span>
echo $_user[<span>1</span>]->author->attributes();
Salin selepas log masuk

二.使用DOMDocument操控XML

很多情况下,手工生成标记要求从上到下生成文档,必须保证标签都是完整的,开始和结束标签。尽管借助于一些PHP函数或类可以有所改善,不过PHP还提供了一组更有帮助的内置对象和函数。文档对象模型(Document Object Model,DOM)提供了一个树状结构,能很容易创建和处理标签。

  1.DOMDocument解析XML

<span>//</span><span>创建一个DOMDocument()</span>
$_doc = <span>new</span><span> DOMDocument();
</span><span>//</span><span>载入xml</span>
$_doc->load(<span>'</span><span>test.xml</span><span>'</span><span>);
</span><span>//</span><span>取version标签</span>
$_version = $_doc->getElementsByTagName(<span>'</span><span>version</span><span>'</span><span>);
echo $_version</span>->item(<span>2</span>)-><span>nodeValue;
</span><span>//</span><span>遍历version标签</span>
<span>foreach</span> ($_version <span>as</span><span> $v) {
echo $v</span>-><span>nodeValue;
}</span>
Salin selepas log masuk

  2.DOMDocument生成XML

<span>//</span><span>声明xml</span>
$_doc = <span>new</span> DOMDocument(<span>'</span><span>1.0</span><span>'</span>,<span>'</span><span>utf-8</span><span>'</span><span>);
</span><span>//</span><span>排版格式</span>
$_doc->formatOutput = <span>true</span><span>;
</span><span>//</span><span>创建一个主标签</span>
$_root = $_doc->createElement(<span>'</span><span>root</span><span>'</span><span>);
</span><span>//</span><span>创建一个一级标签version</span>
$_version = $_doc->createElement(<span>'</span><span>version</span><span>'</span><span>);
</span><span>//</span><span>给version标签里赋值</span>
$_versionTextNode = $_doc->createTextNode(<span>'</span><span>1.0</span><span>'</span><span>);
</span><span>//</span><span>将值放入version标签里</span>
$_version-><span>appendChild($_versionTextNode);
</span><span>//</span><span>将一级标签version放入root里</span>
$_root-><span>appendChild($_version);
</span><span>//</span><span>将主标签写入xml</span>
$_doc-><span>appendChild($_root);
</span><span>//</span><span>生成xml</span>
$_doc->save(<span>'</span><span>aaa.xml</span><span>'</span>);
Salin selepas log masuk

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1007357.htmlTechArticlePHP创建与解析 XML 1 (36),xml36 一.使用SimpleXML操控XML 要处理XML 文件,有两种传统的处理思路:SAX 和DOM。SAX 基于事件触发机制,对XML 文...
Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Bagaimana untuk mengulangi rentetan dalam python_python mengulangi tutorial rentetan Apr 02, 2024 pm 03:58 PM

1. Mula-mula buka pycharm dan masukkan halaman utama pycharm. 2. Kemudian buat skrip python baru, klik kanan - klik baru - klik pythonfile. 3. Masukkan rentetan, kod: s="-". 4. Kemudian anda perlu mengulang simbol dalam rentetan sebanyak 20 kali, kod: s1=s*20 5. Masukkan kod output cetakan, kod: print(s1). 6. Akhir sekali jalankan skrip dan anda akan melihat nilai pulangan kami di bahagian bawah: - diulang 20 kali.

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Mar 26, 2024 am 11:45 AM

Penjelasan terperinci tentang kaedah menukar jenis int kepada rentetan dalam PHP Dalam pembangunan PHP, kita sering menghadapi keperluan untuk menukar jenis int kepada jenis rentetan. Penukaran ini boleh dicapai dalam pelbagai cara Artikel ini akan memperkenalkan beberapa kaedah biasa secara terperinci, dengan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Gunakan fungsi terbina dalam PHP strval(). PHP menyediakan fungsi terbina dalam strval() yang boleh menukar pembolehubah jenis yang berbeza kepada jenis rentetan. Apabila kita perlu menukar jenis int kepada jenis rentetan,

Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Bagaimana untuk menentukan sama ada rentetan Golang berakhir dengan aksara yang ditentukan Mar 12, 2024 pm 04:48 PM

Tajuk: Bagaimana untuk menentukan sama ada rentetan berakhir dengan aksara tertentu dalam Golang Dalam bahasa Go, kadangkala kita perlu menentukan sama ada rentetan berakhir dengan aksara tertentu Ini adalah perkara biasa semasa memproses rentetan. Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan fungsi ini dan memberikan contoh kod untuk rujukan anda. Mula-mula, mari kita lihat cara untuk menentukan sama ada rentetan berakhir dengan aksara tertentu dalam Golang. Aksara dalam rentetan dalam Golang boleh diperoleh melalui pengindeksan, dan panjang rentetan itu boleh

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Mar 12, 2024 pm 09:42 PM

Bagaimana untuk menyemak sama ada rentetan bermula dengan aksara tertentu dalam Golang? Apabila pengaturcaraan di Golang, anda sering menghadapi situasi di mana anda perlu menyemak sama ada rentetan bermula dengan aksara tertentu. Untuk memenuhi keperluan ini, kita boleh menggunakan fungsi yang disediakan oleh pakej rentetan di Golang untuk mencapainya. Seterusnya, kami akan memperkenalkan secara terperinci cara menggunakan Golang untuk menyemak sama ada rentetan bermula dengan aksara tertentu, dengan contoh kod tertentu. Di Golang, kita boleh menggunakan HasPrefix daripada pakej rentetan

Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar perenambelasan kepada rentetan dalam PHP Mar 04, 2024 am 09:36 AM

Kaedah untuk menyelesaikan masalah aksara Cina yang kacau apabila menukar rentetan perenambelasan dalam PHP Dalam pengaturcaraan PHP, kadangkala kita menghadapi situasi di mana kita perlu menukar rentetan heksadesimal kepada aksara Cina biasa. Walau bagaimanapun, dalam proses penukaran ini, kadangkala anda akan menghadapi masalah aksara Cina yang kacau. Artikel ini akan memberi anda kaedah untuk menyelesaikan masalah aksara Cina yang bercelaru apabila menukar perenambelasan kepada rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi hex2bin() untuk penukaran heksadesimal PHP terbina dalam fungsi hex2bin() boleh menukar 1

Cara memintas rentetan dalam bahasa Go Cara memintas rentetan dalam bahasa Go Mar 13, 2024 am 08:33 AM

Bahasa Go ialah bahasa pengaturcaraan yang berkuasa dan fleksibel yang menyediakan fungsi pemprosesan rentetan yang kaya, termasuk pemintasan rentetan. Dalam bahasa Go, kita boleh menggunakan kepingan untuk memintas rentetan. Seterusnya, kami akan memperkenalkan secara terperinci cara memintas rentetan dalam bahasa Go, dengan contoh kod khusus. 1. Gunakan penghirisan untuk memintas rentetan Dalam bahasa Go, anda boleh menggunakan ungkapan menghiris untuk memintas sebahagian daripada rentetan. Sintaks ungkapan slice adalah seperti berikut: slice:=str[start:end]where, s

Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Manipulasi rentetan PHP: cara praktikal untuk mengalih keluar ruang dengan berkesan Mar 24, 2024 am 11:45 AM

Operasi Rentetan PHP: Kaedah Praktikal untuk Mengalih Keluar Ruang Secara Berkesan Dalam pembangunan PHP, kita sering menghadapi situasi di mana kita perlu mengalih keluar ruang daripada rentetan. Mengalih keluar ruang boleh menjadikan rentetan lebih bersih dan memudahkan pemprosesan dan paparan data seterusnya. Artikel ini akan memperkenalkan beberapa kaedah yang berkesan dan praktikal untuk mengalih keluar ruang, dan melampirkan contoh kod tertentu. Kaedah 1: Gunakan fungsi PHP terbina dalam trim() fungsi terbina dalam PHP boleh mengalih keluar ruang pada kedua-dua hujung rentetan (termasuk ruang, tab, baris baharu, dsb.), yang sangat mudah dan mudah. untuk menggunakan.

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Feb 29, 2024 am 08:06 AM

Petua Padanan Rentetan PHP: Elakkan Ungkapan Disertakan Kabur Dalam pembangunan PHP, pemadanan rentetan ialah tugas biasa, biasanya digunakan untuk mencari kandungan teks tertentu atau untuk mengesahkan format input. Walau bagaimanapun, kadangkala kita perlu mengelak daripada menggunakan ungkapan kemasukan yang tidak jelas untuk memastikan ketepatan padanan. Artikel ini akan memperkenalkan beberapa teknik untuk mengelakkan ungkapan kemasukan yang samar-samar semasa melakukan pemadanan rentetan dalam PHP dan memberikan contoh kod khusus. Gunakan fungsi preg_match() untuk padanan tepat Dalam PHP, anda boleh menggunakan preg_mat

See all articles