0

我正在使用 DomDocument 生成 XML 流。我需要纯 XML 流,所以我不想使用 xsl 转换来更改源代码。尽管如此,我希望人们能够在浏览器中“读取”XML,而无需右键单击->查看源代码。

所以我要做的是创建一个 DomDocument 并添加一个处理指令:

$css = $xml->createProcessingInstruction("xml-stylesheet", "type=\"text/css\" href=\"xml.css\"");
$xml->appendChild($css);

然后我添加我所有的项目。生成的 XML 如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="xml.css"?>
<OBJECT>
  <OBJECTNAME>Mi Casa</OBJECTNAME>
  <OBJECTID>1</OBJECTID>
  <DATES>
    <DATE>
      <ID>5</ID>
      <STAYFROM>05.08.2010</STAYFROM>
      <STAYTO>15.08.2010</STAYTO>
    </DATE>
  </DATES>
</OBJECT>

这是原始xml的链接:

http://www.todasmisreservas.com/service/rss.php?obj=1type=res&status=confirmed&xsl=1

这是我的CSS:

OBJECT {
background-color: #555555;
width: 100%;
}

OBJECTNAME {
display: block;
margin-bottom: 30pt;
margin-left: 0;
}

OBJECTID {
color: #FF0000;
font-size: 20pt;
}

DATES {
color: #0000FF;
font-size: 20pt;
}

STAYFROM, STAYTO, ID {
display: block;
color: #aa0000;
margin-left: 20pt;
}

我无法让它工作,因为 cssfile 会以任何方式影响 xml。我究竟做错了什么?

谢谢

梅尼

4

1 回答 1

0

好的,对于任何有同样问题的人,我终于找到了解决方案:

当从 php 流式传输 XML 流时,请确保不仅有一个有效的 xml 文件,而且还要发送一个 HTTPResponse-Header,如:

header("content-type: text/xml; charset=utf-8");

然后它工作。

格雷茨

于 2010-06-18T15:37:19.267 回答