首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:显示Dom对象和创建xml文件

PHP:显示Dom对象和创建xml文件
EN

Stack Overflow用户
提问于 2010-05-21 15:02:21
回答 3查看 561关注 0票数 2
代码语言:javascript
复制
<?php                                               

  $books = array();
  $books [] = array(
  'title' => 'PHP Hacks',
  'author' => 'Jack Herrington',
  'publisher' => "O'Reilly"     
  );                            
  $books [] = array(            
  'title' => 'Podcasting Hacks',
  'author' => 'Jack Herrington',
  'publisher' => "O'Reilly"     
  );                            

  $doc = new DOMDocument();     
  $doc->formatOutput = true;    
  $r = $doc->createElement( "books" );
  $doc->appendChild( $r );            
  foreach( $books as $book )          
  {                                   
  $b = $doc->createElement( "book" ); 

  $author = $doc->createElement( "author" );
  $author->appendChild(
  $doc->createTextNode( $book['author'] )
  );
  #$author->appendChild( $doc->createTextNode( 'pavunkumar'));
  $new = $doc->createElement("Developer");
  $a=$doc->createTextNode('I am developer ' );
  $new->appendChild($a);
  $b->appendChild( $author );
  $b->appendChild($new);
  $b->appendChild($new);
  $title = $doc->createElement( "title" );
  $title->appendChild(
  $doc->createTextNode( $book['title'] )
  );
  $b->appendChild( $title );
  $publisher = $doc->createElement( "publisher" );
  $publisher->appendChild(
  $doc->createTextNode( $book['publisher'] )
  );
  $b->appendChild( $publisher );

  $r->appendChild( $b );
  }
  echo $doc->SaveXml() ;
  ?>

当我在命令行中运行这段代码时。我得到了以下几点

代码语言:javascript
复制
<?xml version="1.0"?>
<books>
  <book>
    <author>Jack Herrington</author>
    <Developer>I am developer </Developer>
    <title>PHP Hacks</title>
    <publisher>O'Reilly</publisher>
  </book>
  <book>
    <author>Jack Herrington</author>
    <Developer>I am developer </Developer>
    <title>Podcasting Hacks</title>
    <publisher>O'Reilly</publisher>
  </book>
</books>

当我在web浏览器中运行代码时,它会显示以下内容

代码语言:javascript
复制
Jack Herrington  I am developer  O'Reilly    Jack Herrington  I am developer  O'Reilly  

我希望上面的输出能像命令行输出一样。还有一件事是,我如何使用$doc Dom对象创建xml文件,而不是显示。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-21 15:13:44

我可能不是正确的,但是尝试像这样发送一个报头:

代码语言:javascript
复制
Header("Content-Type: text/xml");

代码语言:javascript
复制
Header("Content-Type: text/plain");

以获得适当的结果。(当然是在运行$doc->saveXML();之前。

票数 1
EN

Stack Overflow用户

发布于 2010-05-22 02:56:20

将< and >转换为具有htmlspecialchars (http://ua.php.net/manual/en/function.htmlspecialchars.php)的实体,浏览器不会将其解析为html:

代码语言:javascript
复制
echo htmlspecialchars($doc->SaveXml());
票数 1
EN

Stack Overflow用户

发布于 2010-05-21 15:11:54

这是因为您正在将XML代码输出到PHP文件(转换为HTML)中。检查您的源代码,您将看到所需的输出。如果您想获得与命令行中相同的结果,则必须将输出保存到新的XML文件中。

使用fopen创建新的XML文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2880145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档