搜索
熱搜: 活動 交友 discuz
查看: 9597|回復: 0
打印 上一主題 下一主題

[PHP] [PHP] XML基礎簡單範例 - simplexml 函數 / asXml() 函數

[複製鏈接]
跳轉到指定樓層
1#
發表於 2013-11-26 16:46:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
以下範例使用了PHP-XML基礎用法,不懂得可以告訴我再加以註解
  1. <?php
  2. $string = <<<XML
  3. <?xml version='1.0'?>
  4. <Item>
  5.   <user>
  6.     <title>TITLE</title>
  7.     <name>Nick</name>
  8.   </user>
  9. </Item>
  10. XML;

  11. $xml = simplexml_load_string($string);
  12. print_r($xml);

  13. echo $obj->asXml();
  14. $obj->asXml('example.xml');
  15. ?>
複製代碼


另一個範例,主要是注意Header使用,才能讓瀏覽器辨別
  1. <?php
  2. $newsXML = new SimpleXMLElement("<news></news>");
  3. $newsXML->addAttribute('newsPagePrefix', 'value goes here');
  4. $newsIntro = $newsXML->addChild('content');
  5. $newsIntro->addAttribute('type', 'latest');
  6. Header('Content-type: text/xml');
  7. echo $newsXML->asXML();
  8. ?>
複製代碼



補充一個simpleXML大問題:CDATA封裝

這裡引用一段範例解決此問題:
  1. <?php
  2. // http://coffeerings.posterous.com/php-simplexml-and-cdata
  3. class SimpleXMLExtended extends SimpleXMLElement {
  4.   public function addCData($cdata_text) {
  5.     $node = dom_import_simplexml($this);
  6.     $no   = $node->ownerDocument;
  7.     $node->appendChild($no->createCDATASection($cdata_text));
  8.   }
  9. }

  10. $xmlFile    = 'config.xml';
  11. // instead of $xml = new SimpleXMLElement('<site/>');
  12. $xml        = new SimpleXMLExtended('<site/>');
  13. $xml->title = NULL; // VERY IMPORTANT! We need a node where to append
  14. $xml->title->addCData('Site Title');
  15. $xml->title->addAttribute('lang', 'en');
  16. $xml->saveXML($xmlFile);
  17. ?>
複製代碼
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2024-4-25 06:39 , Processed in 0.207151 second(s), 16 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表