php產生xml檔案的四種方法

來源:互聯網
上載者:User
  1. title1
  2. content1
  3. 2009-10-11
  4. title2
  5. content2
  6. 2009-11-11
複製代碼

方法1,直接產生字串使用純粹的php代碼產生字串,並把這個字串寫入一個以XML為尾碼的檔案。

  1. $data_array = array(

  2. array(
  3. 'title' => 'title1',
  4. 'content' => 'content1',
  5. 'pubdate' => '2009-10-11',
  6. ),
  7. array(
  8. 'title' => 'title2',
  9. 'content' => 'content2',
  10. 'pubdate' => '2009-11-11',
  11. )
  12. );
  13. $title_size = 1;

  14. $xml = "\n";

  15. $xml .= "\n";

  16. foreach ($data_array as $data) {

  17. $xml .= create_item($data['title'], $title_size, $data['content'], $data['pubdate']);
  18. }

  19. $xml .= "\n";

  20. echo $xml;

  21. //建立XML單項

  22. function create_item($title_data, $title_size, $content_data, $pubdate_data)
  23. {
  24. $item = "\n";
  25. $item .= "" . $title_data . "\n";
  26. $item .= "" . $content_data . "\n";
  27. $item .= " " . $pubdate_data . "\n";
  28. $item .= "\n";

  29. return $item;

  30. }
  31. ?>

複製代碼

方法2,使用DomDocument產生XML檔案操作步驟:1,建立節點使用createElement方法,2,建立常值內容使用createTextNode方法,3,添加子節點使用appendChild方法,4,建立屬性使用createAttribute方法

  1. $data_array = array(

  2. array(
  3. 'title' => 'title1',
  4. 'content' => 'content1',
  5. 'pubdate' => '2009-10-11',
  6. ),
  7. array(
  8. 'title' => 'title2',
  9. 'content' => 'content2',
  10. 'pubdate' => '2009-11-11',
  11. )
  12. );

  13. // 屬性數組

  14. $attribute_array = array(
  15. 'title' => array(
  16. 'size' => 1
  17. )
  18. );

  19. // 建立一個XML文檔並設定XML版本和編碼。。

  20. $dom=new DomDocument('1.0', 'utf-8');

  21. // 建立根節點

  22. $article = $dom->createElement('article');
  23. $dom->appendchild($article);

  24. foreach ($data_array as $data) {

  25. $item = $dom->createElement('item');
  26. $article->appendchild($item);
  27. create_item($dom, $item, $data, $attribute_array);
  28. }
  29. echo $dom->saveXML();

  30. function create_item($dom, $item, $data, $attribute) {

  31. if (is_array($data)) {
  32. foreach ($data as $key => $val) {
  33. // 建立元素
  34. $$key = $dom->createElement($key);
  35. $item->appendchild($$key);

  36. // 建立元素值

  37. $text = $dom->createTextNode($val);
  38. $$key->appendchild($text);

  39. if (isset($attribute[$key])) {

  40. // 如果此欄位存在相關屬性需要設定
  41. foreach ($attribute[$key] as $akey => $row) {
  42. // 建立屬性節點
  43. $$akey = $dom->createAttribute($akey);
  44. $$key->appendchild($$akey);

  45. // 建立屬性值節點

  46. $aval = $dom->createTextNode($row);
  47. $$akey->appendChild($aval);
  48. }
  49. } // end if
  50. }
  51. } // end if
  52. } // end function
  53. ?>

複製代碼

方法3,使用XMLWriter類建立XML檔案 1 2 下一頁 尾頁

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.