以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XSL/XSLT/XSL-FO/CSS 』  (http://bbs.xml.org.cn/list.asp?boardid=8)
----  怎样使XMLDOM输出的内容不带<?xml version"1.0"?> ???  (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=76835)


--  作者:xmlscript
--  发布时间:9/17/2009 2:19:00 AM

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

-----------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>


--  作者:hexun831012
--  发布时间:9/17/2009 5:10:00 PM

--  
php的DOM没玩过,但有一点,你的页面开DOM,你的服务器内存吃的销吗,应该用读写器
--  作者:xmlscript
--  发布时间:9/18/2009 10:34:00 AM

--  
都有什么方法用xsl转xml呢?
--  作者:xmlscript
--  发布时间:9/20/2009 1:05:00 PM

--  
看了w3c.org,发现output有个属性专管这个。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms