+ -
当前位置:首页 → 问答吧 → 怎样使XMLDOM输出的内容不带<?xml version"1.0"?> ???

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

时间:2009-09-17

来源:互联网

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转换后的结果,我实在是不知道怎么做啊。

-----------default_xhtml.php ----------
<?php header("Content-Type: application/xhtml+xml; charset=gb2312"); echo '<'.'?xml version="1.0" encoding="gb2312"?'.'>'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body> <?php $xml = new DOMDocument(); $xml->load("test.xml"); $xsl = new DOMDocument(); $xsl->load("test.xsl"); $proc = new XSLTProcessor(); $proc->importStyleSheet($xsl); $temp = $proc->transformToXML($xml); $newxml = new DOMDocument(); $newxml->loadXML($temp); echo $newxml->saveXML(); // 不行,输出结果带<?xml version="1.0"?> echo $newxml->saveHTML(); //不行,输出结果没有关闭tag,如<img> ?> </body> </html>
   提示:您可以先修改部分代码再运行

作者: xmlscript   发布时间: 2009-09-17