我试图做一个XSLT转换(服务器端,使用PHP),我想XHTML作为转换的输出,因为它是一个XHTML页面的一部分。 如果我使用
<xsl:output method="html" />
它生成的代码是有效的HTML代码,但是具有BR代码(无/),所以它不会是有效的XHTML;
如果我使用
<xsl:output method="xml" />
这里来的荒诞:输出确实有BR /标签,以及IS正确的XML,但是当我把它放到页面属于,一些结束标记消失,没有明显的原因。
这里的XSL文件http://hbxplayer.sf.net/test/mobile.xsl (这是一个有点长,在这里将其粘贴)
,做转型的PHP是这样的:
ob_start();
include 'presetList_xml.php';
$xml=ob_get_clean();
$xsl=file_get_contents("mobile.xsl");
$xslt=new XSLTProcessor();
$xslt->importStyleSheet(new SimpleXMLElement($xsl));
echo $xslt->transformToXml(new SimpleXMLElement($xml));
加载输出的JS是这样的:
function loadPresetList(){
var listArea=document.getElementById("presetsArea");
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200||xmlhttp.status==0){
listArea.innerHTML=xmlhttp.responseText;
}else{ //ERROR, TRY AGAIN
listArea.innerHTML="Error. Retrying...";
loadPresetList();
}
}
}
xmlhttp.open("GET","presets_transformer.php?type=mobile&r="+Math.random(),true);
xmlhttp.send();
}
没有什么太特别的,你可以看到; 但它是使用XSLT所以我可能做错了什么我的第一次。
提前致谢 :)
编辑:把每个元素围绕一个div似乎解决了这个问题。 为什么? 我不知道。 静像:第一标记开始终缺少结束标记