這裏有些東西很棘手。我試圖解析這個XSL文件:XSL樣式表不會解析 - 爲什麼?
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Events</title>
</head>
<body>
<dl>
<xsl:for-each select="all/event">
<xsl:sort select="substring(@displayuntil,7,4)" data-type="number" /> <!-- year -->
<xsl:sort select="substring(@displayuntil,1,2)" data-type="number" /> <!-- month -->
<xsl:sort select="substring(@displayuntil,4,2)" data-type="number" /> <!-- day -->
<dt>
<xsl:value-of select="@displayuntil" />
--
<xsl:value-of select="@title" />
</dt>
<dd>
<xsl:value-of select="description" disable-output-escaping="yes" />
</dd>
</xsl:for-each>
</dl>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
使用下面的JavaScript代碼,從W3Schools的考慮:
function loadXMLDoc(dname) {
if (window.XMLHttpRequest) {
var xhttp = new XMLHttpRequest();
} else {
var xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",dname,false);
xhttp.send();
alert(xhttp.responseText); // displays the contents of the document
alert(xhttp.responseXML.xml); // in IE, displays nothing
return xhttp.responseXML;
}
的xhttp.responseText
警報顯示我的文檔,所以我知道它的加載。 xhttp.responseXML.xml
警報是空白的,所以顯然它不是一個格式良好的XML文件。
我已經運行它通過http://XMLvalidation.com並沒有得到任何錯誤。那麼我忽略了什麼?
它適合我。我只是將該JavaScript代碼附加到按鈕單擊,並將xsl放入服務器上的文件。當我點擊按鈕時,我收到了兩條警報,兩條警報的內容基本相同。 – Cheeso
@Cheeso - 好:這表明我的XSL是正確的。不好:我不知道問題的其他地方在哪裏...... – Blazemonger