av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

php操作xml的各種方法解析

時(shí)間:2024-12-09 02:22:02 php語言 我要投稿
  • 相關(guān)推薦

php操作xml的各種方法解析

  PHP提供了一整套的讀取 XML文件的方法,很容易的就可以編寫基于 XML的腳本程序。本章將要介紹 PHP與 XML的操作方法,并對(duì)幾個(gè)常用的 XML類庫做一些簡要介紹。下面是小編整理的php操作xml的各種方法解析,就跟隨百分網(wǎng)小編一起去了解下吧,想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  XML是一種流行的半結(jié)構(gòu)化文件格式,以一種類似數(shù)據(jù)庫的格式存儲(chǔ)數(shù)據(jù)。在實(shí)際應(yīng)用中,一些簡單的、安全性較低的數(shù)據(jù)往往使用 XML文件的格式進(jìn)行存儲(chǔ)。這樣做的好處一方面可以通過減少與數(shù)據(jù)庫的交互性操作提高讀取效率,另一方面可以有效利用 XML的優(yōu)越性降低程序的編寫難度。

  PHP提供了一整套的讀取 XML文件的方法,很容易的就可以編寫基于 XML的腳本程序。本章將要介紹 PHP與 XML的操作方法,并對(duì)幾個(gè)常用的 XML類庫做一些簡要介紹。

  1 XML簡介

  XML是“可擴(kuò)展性標(biāo)識(shí)語言(eXtensible Markup Language)”的縮寫,是一種類似于 HTML的標(biāo)記性語言。但是與 HTML不同,XML主要用于描述數(shù)據(jù)和存放數(shù)據(jù),而 HTML主要用于顯示數(shù)據(jù)。

  XML是一種“元標(biāo)記”語言,開發(fā)者可以根據(jù)自己的需要?jiǎng)?chuàng)建標(biāo)記的名稱。例如,下面的 XML代碼可以用來描述一條留言。

  復(fù)制代碼 代碼如下:

  <thread>

  <title>Welcome</title>

  <author>Simon</author>

  <content>Welcome to XML guestbook!!</content>

  </thread>

  其中,<thread>與</thread>標(biāo)簽標(biāo)記了這是一段留言。在留言中有標(biāo)題、作者、內(nèi)容,完整的表述了一條留言信息。

  在一個(gè) XML文件的頂部,通常使用<?xml version=”1.0″?>來標(biāo)識(shí) XML數(shù)據(jù)的開始和 XML數(shù)據(jù)使用標(biāo)準(zhǔn)的版本信息。在瀏覽器中訪問 XML文件可以看到層次分明的 XML數(shù)據(jù)信息,如圖 1所示。

  XML的發(fā)展非常迅速,近些年來很多軟件開發(fā)商都開始采用 XML的開發(fā)標(biāo)準(zhǔn)進(jìn)行應(yīng)用程序的開發(fā)。并且,很多新興技術(shù)都架構(gòu)在 XML數(shù)據(jù)之上。這意味著 XML將與 HTML一樣成為 Web技術(shù)不可或缺的一部分。

  2 簡單的 XML操作

  在實(shí)際應(yīng)用中,PHP與 XML的交互操作應(yīng)用非常廣泛。SimpleXML組件是 PHP5新增加的一個(gè)簡

  單的 XML操作組件,與傳統(tǒng)的 XML組件相比,SimpleXML組件的使用非常簡單。本節(jié)將對(duì)使用

  SimpleXML組件操作 XML的方法做一下詳細(xì)介紹。

  2.1 創(chuàng)建一個(gè) SimpleXML對(duì)象

  SimpleXML 對(duì)象是用來臨時(shí)存儲(chǔ) XML數(shù)據(jù)的臨時(shí)變量,對(duì) XML進(jìn)行的操作都是通過操作 SimpleXML對(duì)象來完成的。SimpleXML組件提供了兩種創(chuàng)建 SimpleXML對(duì)象的方法。第一種方法是使用 simplexml_load_string函數(shù)讀取一個(gè)字符串型變量中的 XML數(shù)據(jù)來完成創(chuàng)建的,其語法格式如下所示。

  simplexml_load_string(string data)

  這里的 data變量用于存儲(chǔ) XML數(shù)據(jù)。以下代碼使用 simplexml_load_string函數(shù)創(chuàng)建了一個(gè) SimpleXML對(duì)象

  復(fù)制代碼 代碼如下:

  <?php

  $data = <<<XML //定義 XML數(shù)據(jù)

  <?xml version='1.0′?>

  <departs>

  <depart>

  <name>production support</name>

  <employees>

  <employee>

  <serial_no>100001</serial_no>

  <name>Simon</name>

  <age>24</age>

  <birthday>1982-11-06</birthday>

  <salary>5000.00</salary>

  <bonus>1000.00</bonus>

  </employee>

  <employee>

  <serial_no>100002</serial_no>

  <name>Elaine</name>

  <age>24</age>

  <birthday>1982-01-01</birthday>

  <salary>6000.00</salary>

  <bonus>2000.00</bonus>

  </employee>

  </employees>

  </depart>

  <depart>

  <name>testing center</name>

  <employees>

  <employee>

  <serial_no>110001</serial_no>

  <name>Helen</name>

  <age>23</age>

  <birthday>1983-07-21</birthday>

  <salary>5000.00</salary>

  <bonus>1000.00</bonus>

  </employee>

  </employees>

  </depart>

  </departs>

  XML;

  $xml = simplexml_load_string($data); //創(chuàng)建 SimpleXML對(duì)象

  print_r($xml); //輸出 XML

  ?>

  在上面的例子中,$data變量存儲(chǔ)了一段 XML數(shù)據(jù)。 simplexml_load_string函數(shù)將變量$data轉(zhuǎn)化成 SimpleXML對(duì)象。通過 print_r函數(shù)的輸出可以看出該對(duì)象的結(jié)構(gòu),運(yùn)行結(jié)果如下所示。

  復(fù)制代碼 代碼如下:

  SimpleXMLElement Object

  (

  [depart] => Array

  (

  [0] => SimpleXMLElement Object

  (

  [name] => production support

  [employees] => SimpleXMLElement Object

  ( [employee] => Array (

  [0] => SimpleXMLElement Object

  ( [serial_no] => 100001

  [name] => Simon

  [age] => 24

  [birthday] => 1982-11-06

  [salary] => 5000.00

  [bonus] => 1000.00

  )

  [1] => SimpleXMLElement Object

  ( [serial_no] => 100002

  [name] => Elaine

  [age] => 24

  [birthday] => 1982-01-01

  [salary] => 6000.00

  [bonus] => 2000.00

  )

  )

  )

  )

  [1] => SimpleXMLElement Object

  (

  [name] => testing center

  [employees] => SimpleXMLElement Object

  (

  [employee] => SimpleXMLElement Object

  (

  [serial_no] => 110001

  [name] => Helen

  [age] => 23

  [birthday] => 1983-07-21

  [salary] => 5000.00

  [bonus] => 1000.00

  )

  )

  )

  )

  )

  從輸出結(jié)果可以看出,SimpleXML對(duì)象的結(jié)構(gòu)與 XML數(shù)據(jù)的格式完全相同。

  第二種方法是使用 simplexml_load_flie函數(shù)讀取一個(gè) XML文件來完成創(chuàng)建的,其語法格式如下所示。

  simplexml_load_file(string filename)

  這里的 filename變量是用于存儲(chǔ) XML數(shù)據(jù)文件的文件名及其所在路徑。以下代碼使用 simplexml_load_file函數(shù)來創(chuàng)建了一個(gè) SimpleXML對(duì)象。

  復(fù)制代碼 代碼如下:

  <?php

  $xml = simplexml_load_file('example.xml'); //創(chuàng)建 SimpleXML對(duì)象

  print_r($xml); //輸出 XML

  ?>

  其中,example.xml存儲(chǔ)的數(shù)據(jù)與上面的$data完全相同,運(yùn)行結(jié)果也與上面完全相同。

  上面兩種方法實(shí)現(xiàn)了同樣的功能,其區(qū)別就在于 XML的數(shù)據(jù)源不同。如果 XML的數(shù)據(jù)源在 PHP腳本文件中,則需要使用 simplexml_load_string來進(jìn)行創(chuàng)建。如果 XML的數(shù)據(jù)源在一個(gè)單獨(dú)的 XML文件中,則需要使用 simplexml_load_file來進(jìn)行創(chuàng)建。

  2.2 讀取 SimpleXML對(duì)象中的 XML數(shù)據(jù)

  前面介紹了使用 print_r函數(shù)來讀取 SimpleXML對(duì)象中的數(shù)據(jù),其返回結(jié)果與數(shù)組的結(jié)構(gòu)類似。顯然,這種顯示方式在實(shí)際應(yīng)用中是不可取的。在這里將介紹其他的幾種讀取 SimpleXML對(duì)象中 XML數(shù)據(jù)的方法。

  1.var_dump函數(shù)顯示對(duì)象詳細(xì)信息

  var_dump函數(shù)可以用于顯示 SimpleXML對(duì)象的詳細(xì)信息,與 print_r函數(shù)相比,var_dump函數(shù)顯示的信息更為完整,其語法如下所示。

  void var_dump(object1, object2 … )

  以下代碼使用 var_dump函數(shù)輸出了上面例子中對(duì)象的詳細(xì)信息。

  復(fù)制代碼 代碼如下:

  <?php $xml = simplexml_load_file('example.xml'); //創(chuàng)建 SimpleXML對(duì)象 var_dump($xml); //輸出 XML ?>

  運(yùn)行結(jié)果如下所示。

  復(fù)制代碼 代碼如下:

  object(SimpleXMLElement)#1 (1) { ["depart"]=> array(2) {

  [0]=>

  object(SimpleXMLElement)#2 (2) {

  ["name"]=>

  string(18) “production support”

  ["employees"]=>

  object(SimpleXMLElement)#4 (1) {

  ["employee"]=>

  array(2) {

  [0]=>

  object(SimpleXMLElement)#5 (6) {

  ["serial_no"]=>

  string(6) “100001″

  ["name"]=>

  string(5) “Simon”

  ["age"]=>

  string(2) “24″

  ["birthday"]=>

  string(10) “1982-11-06″

  ["salary"]=>

  string(7) “5000.00″

  ["bonus"]=>

  string(7) “1000.00″

  }

  [1]=>

  object(SimpleXMLElement)#6 (6) {

  ["serial_no"]=>

  string(6) “100002″

  ["name"]=>

  string(6) “Elaine”

  ["age"]=>

  string(2) “24″

  ["birthday"]=>

  string(10) “1982-01-01″

  ["salary"]=>

  string(7) “6000.00″

  ["bonus"]=>

  string(7) “2000.00″

  }

  }

  }

  }

  [1]=>

  object(SimpleXMLElement)#3 (2) {

  ["name"]=>

  string(14) “testing center”

  ["employees"]=>

  object(SimpleXMLElement)#7 (1) {

  ["employee"]=>

  object(SimpleXMLElement)#8 (6) {

  ["serial_no"]=>

  string(6) “110001″

  ["name"]=>

  string(5) “Helen”

  ["age"]=>

  string(2) “23″

  ["birthday"]=>

  string(10) “1983-07-21″

  ["salary"]=>

  string(7) “5000.00″

  ["bonus"]=>

  string(7) “1000.00″

  }}}}}

  與前面 print_r輸出的結(jié)果相比較,var_dump函數(shù)的輸出結(jié)果的結(jié)構(gòu)更為嚴(yán)謹(jǐn),并且將對(duì)象中的每一個(gè)屬性的數(shù)據(jù)類型均作出分析。在實(shí)際應(yīng)用中,var_dump函數(shù)往往用于程序調(diào)試時(shí)的對(duì)象檢測。

  2.讀取 XML數(shù)據(jù)中的標(biāo)簽

  與操作數(shù)組類型的變量類似,讀取 XML也可以通過類似的方法來完成。例如,如果需要讀取上面 XML數(shù)據(jù)中每一個(gè)“ depart”標(biāo)簽下的“name”屬性,可以通過使用 foreach函數(shù)來完成,如以下代碼

  所示。

  復(fù)制代碼 代碼如下:

  <?php $xml = simplexml_load_file('example.xml'); foreach($xml->depart as $a)

  {

  echo “$a->name <BR>”;

  }

  ?>

  運(yùn)行結(jié)果如下所示。

【php操作xml的各種方法解析】相關(guān)文章:

php操作xml入門之xml基本介紹08-13

php解析XML文檔屬性并編輯的代碼09-28

PHP將XML轉(zhuǎn)為數(shù)組的方法06-18

PHP往XML中添加節(jié)點(diǎn)的方法11-05

PHP將XML轉(zhuǎn)為數(shù)組的方法詳解07-27

通過php添加xml文檔內(nèi)容的方法08-21

PHP文件與目錄操作的方法11-16

php數(shù)組操作方法10-18

PHP常用MySql操作的方法10-11