欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php生成xml文件的四种方法

程序员文章站 2022-05-16 18:06:15
...
  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 .= "

  20. \n";
  21. echo $xml;
  22. //创建XML单项

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

  32. }
  33. ?>
复制代码

方法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 下一页 尾页