Tôi có đoạn code php sau:
Code:
<?php
function showXML(){
header( "content-type: text/xml" );
$str = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"; //dong 3
$str .= "<?xml-stylesheet type=\"text/xsl\" href=\"format.xsl\"?>"; //dong 4
//$str .= " <books>";
//$str .= "<book name=\"Code Generation in Action\"><price>120$</price><author>abc</author></book>";
//$str .= "</books>";
//echo $str;
echo ( "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
echo( "<?xml-stylesheet type=\"text/xsl\" href=\"format.xsl\"?>");
echo (" <books>");
echo ("<book name=\"Book Title 1 \" ><price>120$</price><author>abc</author></book>");
echo ("<book name=\"Book Title 2 \" ><price>130$</price><author>sdfdsc</author></book>");
echo ("<book name=\"Book Title 3\" ><price>140$</price><author>asdf</author></book>");
echo ("<book name=\"Book Title 4\" ><price>1250$</price><author>abdsfsdc</author></book>");
echo( "</books>");
}
showXML();
?>
và đây là format.xsl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlnssl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" href="default.css" type="text/css" media="screen" />
</head>
<body>
<table width="400">
<xsl:for-each select="/books/book">
<tr>
<td align="center" class="menu-active">
<xsl:value-of select="@name" />
</td>
</tr>
<tr>
<td>
<table>
<tr>
<td class="menu-inactive" width="200" align="center">
<xsl:value-of select="price" />
</td>
<td class="menu-inactive" width="200" align="center">
<xsl:value-of select="author" />
</td>
</tr>
</table>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Và kết quả là:
Vấn đề ở đây là khi tôi comment hai dòng (dòng 3 và dòng 4) ở đoạn code PHP trên thì sẽ không hiển thị gì cả ?! nếu bỏ comment thì kết quả tốt, điều lạ ở đây là 2 dòng trên chẳng liên quan gì cả. Vậy ai biết như thế nào và lý do gì xin giải thích hộ. Thank.
Bổ sung: PHP phiên bản 5.2.4 cấu hình trên IIS 5.1