无忧脚本 » XML & XSL & XPath & VML 网页技术讨论版 » 怎样使XMLDOM输出的内容不带<?xml version"1.0"?> ???

2009-9-17 02:21 xmlscript
怎样使XMLDOM输出的内容不带<?xml version"1.0"?> ???

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 ----------
[code]
<?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>
[/code]

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.