国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php中DOMDocument與SimpleXML創(chuàng)建與解析xml程序

2024-05-04 21:48:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

通過(guò)DOM擴(kuò)展創(chuàng)建一個(gè)DOMDocument對(duì)象,通過(guò)DOMDocument對(duì)象的方法向文檔添加元素,最后通過(guò)save()或saveXML()方法來(lái)生成文檔,也可以通過(guò)SimpleXML來(lái)快速解析xml文檔.

例子:DOM XML 解析器函數(shù)是 PHP 核心的組成部分,無(wú)需安裝就可以使用這些函數(shù).

XML文件,將在我們的例子中使用下面的 XML 文件,代碼如下:

  1. <?xml version="1.0" encoding="ISO-8859-1"?> 
  2. <note> 
  3. <to>George</to> 
  4. <from>John</from> 
  5. <heading>Reminder</heading> 
  6. <body>Don't forget the meeting!</body> 
  7. </note> 

加載和輸出 XML,我們需要初始化 XML 解析器,加載 XML,并把它輸出,例子代碼如下:

  1. <?php 
  2. $xmlDoc = new DOMDocument(); 
  3. $xmlDoc->load("note.xml"); 
  4.  
  5. print $xmlDoc->saveXML(); 
  6. ?> 
  7.  
  8. //以上代碼的輸出: 
  9. //George John Reminder Don't forget the meeting 

假如您在瀏覽器窗口中查看源代碼,會(huì)看到下面這些 HTML,代碼如下:

  1. <?xml version="1.0" encoding="ISO-8859-1"?> 
  2. <note> 
  3. <to>George</to> 
  4. <from>John</from> 
  5. <heading>Reminder</heading> 
  6. <body>Don't forget the meeting!</body> 
  7. </note> 

上面的例子創(chuàng)建了一個(gè) DOMDocument-Object,并把 "note.xml" 中的 XML 載入這個(gè)文檔對(duì)象中.

saveXML() 函數(shù)把內(nèi)部 XML 文檔放入一個(gè)字符串,這樣我們就可以輸出它.例子代碼如下:

  1. <?php 
  2. //創(chuàng)建一個(gè)新文檔 
  3. $dom = new DOMDocument('1.0'); 
  4.  
  5. //創(chuàng)建根元素book,并將其添加到文檔中 
  6. $book = $dom->appendChild($dom->createElement('book')); 
  7.  
  8. //創(chuàng)建一個(gè)title元素,并將其添加到$book中 
  9. $title = $book->appendChild($dom->createElement('title')); 
  10. $title->appendChild($dom->createTextNode('Php Book')); 
  11. //為title元素的添加屬性cover,屬性值soft 
  12. $title->setAttribute('cover','soft'); 
  13.  
  14. //創(chuàng)建author元素,并將其添加到$book中 
  15. $kaifabu = $book->appendChild($dom->createElement('author')); 
  16. //為author元素添加文本 
  17. $kaifabu->appendChild($dom->createTextNode('kaifabu')); 
  18.  
  19. //創(chuàng)建author元素,并將其添加到$book中 
  20. $kaifabu = $book->appendChild($dom->createElement('author')); 
  21. //為author元素添加文本 
  22. $kaifabu->appendChild($dom->createTextNode('Younker')); 
  23.  
  24. //將格式化的DOM文檔輸出為XML 
  25. $dom->formatOutput = true; 
  26.  
  27. //生成books.xml文件 
  28. $dom->save('books.xml'); 
  29. //此步把生成的XML以字符串形式顯示 
  30. echo htmlentities($dom->saveXML()); 
  31. ?> 
  32.  
  33. //輸出結(jié)果如下: 
  34. //開(kāi)源代碼Vevb.com 
  35. <?xml version="1.0" ?> 
  36. <book> 
  37.   <title cover="soft">Php Book</title> 
  38.   <author>kaifabu</author> 
  39.   <author>Younker</author> 
  40. </book> 

注:如果上面生成XML這步改成$dom->save(‘books.xml’);直接生成一個(gè)books.xml文件.

下面我們利用simplexml來(lái)解析xml文件

SimpleXML 函數(shù)允許您把 XML 轉(zhuǎn)換為對(duì)象,通過(guò)普通的屬性選擇器或數(shù)組迭代器,可以處理這個(gè)對(duì)象,就像處理任何其他對(duì)象一樣.

其中的一些函數(shù)需要最新的 PHP 版本。

安裝:SimpleXML 函數(shù)是 PHP 核心的組成部分,無(wú)需安裝即可使用這些函數(shù),代碼如下:

  1. <?php  
  2. //使用SimpleXML擴(kuò)展解析XML文檔,解析出來(lái)是一個(gè)對(duì)象,可以通過(guò)對(duì)象獲取它的元素內(nèi)容 
  3. $sx = simplexml_load_file('books.xml'); 
  4. //獲取title標(biāo)簽的內(nèi)容 
  5. $title = $sx->title; 
  6. //因?yàn)橛袃蓚€(gè)author元素,通過(guò)循環(huán)獲取每個(gè)author元素內(nèi)容 
  7. $authors = ''
  8. foreach($sx->author as $author
  9.  $authors .= '&' . $author
  10. $authors = substr($authors, 1); 
  11. echo $title . ':' . $authors
  12. ?>  
  13. //輸出結(jié)果如下: 
  14. //Php Book:kaifabu&Younker 

PHP:指示支持該函數(shù)的最早的 PHP 版本.

SimpleXML函數(shù)

__construct() 創(chuàng)建一個(gè)新的 SimpleXMLElement 對(duì)象。 5 

addAttribute() 給 SimpleXML 元素添加一個(gè)屬性。 5 

addChild() 給 SimpleXML 元素添加一個(gè)子元素。 5 

asXML() 從 SimpleXML 元素獲取 XML 字符串。 5 

attributes() 獲取 SimpleXML 元素的屬性。 5 

children() 獲取指定節(jié)點(diǎn)的子。 5 

getDocNamespaces() 獲取 XML 文檔的命名空間。 5 

getName() 獲取 SimpleXML 元素的名稱。 5 

getNamespaces() 從 XML 數(shù)據(jù)獲取命名空間。 5 

registerXPathNamespace() 為下一次 XPath 查詢創(chuàng)建命名空間語(yǔ)境。 5 

simplexml_import_dom() 從 DOM 節(jié)點(diǎn)獲取 SimpleXMLElement 對(duì)象。 5 

simplexml_load_file() 從 XML 文檔獲取 SimpleXMLElement 對(duì)象。 5 

simplexml_load_string() 從 XML 字符串獲取 SimpleXMLElement 對(duì)象。 5 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 化州市| 鄢陵县| 临澧县| 通州区| 普兰店市| 舟曲县| 芦山县| 嫩江县| 孝义市| 白河县| 古蔺县| 镇江市| 濮阳县| 汉沽区| 广昌县| 富民县| 宝山区| 嘉禾县| 平远县| 兴安县| 威远县| 中江县| 莱州市| 建瓯市| 陆川县| 鸡东县| 湖南省| 将乐县| 永年县| 白玉县| 襄汾县| 靖西县| 前郭尔| 汶上县| 景宁| 荥经县| 阳信县| 武义县| 巢湖市| 通榆县| 本溪|