设为首页收藏本站订阅更新

无忧脚本

 找回密码
 加入无忧

QQ登录

只需一步,快速开始

搜索
查看: 5919|回复: 0

[疑问] 怎样使XMLDOM输出的内容不带<?xml version"1.0"?> ???

[复制链接]
发表于 2009-9-17 02:21:12 | 显示全部楼层 |阅读模式
PHP里用XSL把XML转换了一下,然后将转换后的结果输出,我有如下三个选择:
saveXML()、saveXML(node) 和 saveHTML()。

但是,注意了,转换后的结果是要嵌入一个符合XHTML规范的xhtml页面,所以saveHTML()不行,因为它把原来好好的<img/>硬是变成了<img>,XHTML规则被破坏。

无奈只好用saveXML(),这个也有大问题,它会自带<?xml version="1.0" encoding="gb2312"?>这一行,而XHTML页面的顶端已经有一个了。

后来我查资料看到有saveXML(node)有个参数,但是它是专门对付DOM生成的节点,像我这样用XSL转换后的结果,我实在是不知道怎么做啊。:Q

-----------default_xhtml.php ----------

  1. <?php
  2.   header("Content-Type: application/xhtml+xml; charset=gb2312");
  3.   echo '<'.'?xml version="1.0" encoding="gb2312"?'.'>';
  4. ?>
  5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7. <head></head>
  8. <body>

  9. <?php
  10.   $xml = new DOMDocument();
  11.   $xml->load("test.xml");
  12.   
  13.   $xsl = new DOMDocument();
  14.   $xsl->load("test.xsl");

  15.   $proc = new XSLTProcessor();
  16.   $proc->importStyleSheet($xsl);
  17.   $temp = $proc->transformToXML($xml);

  18.   $newxml = new DOMDocument();
  19.   $newxml->loadXML($temp);

  20.   echo $newxml->saveXML();  // 不行,输出结果带<?xml version="1.0"?>
  21.   echo $newxml->saveHTML();  //不行,输出结果没有关闭tag,如<img>
  22. ?>
  23.       
  24. </body>
  25. </html>
复制代码
您需要登录后才可以回帖 登录 | 加入无忧

本版积分规则

小黑屋|手机版|Archiver|无忧脚本 ( 苏ICP备05080427号 )|值班电话:027-62300445   鄂公网安备 42011102000433号

GMT+8, 2019-5-27 14:38 , Processed in 0.081932 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表