ユーザーが簡単なフォームを使用して単語を追加できるオンライン辞書のようなものを作成しています。その後、ページ内のすべての単語を単語のアルファベット順に表示できます。問題は、アルファベット順に表示されないことですが、挿入順に。
データを含むファイルである res.xml、アルファベット順に res.xml をソートすることになっている tt.xsl、およびデータをユーザーに表示する index.html の 3 つのファイルを取得しました。属性「WORD」を使用してxmlファイルに含まれるデータをアルファベット順に並べ替えますが、index.htmlを実行するとソートされず、データを読み取る順序で表示されるだけです。それを機能させる最も簡単な方法は何ですか?
ここに3つのファイルがあります
これは、視覚化するために使用しているスクリプトを含む HTML ファイルです
<html>
<body>
<script>
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","res.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
document.write("<table border='1'>");
var x=xmlDoc.getElementsByTagName("TERM");for (i=0;i<x.length;i++)
{
document.write("<tr><td>");
document.write(x[i].getElementsByTagName("WORD")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write("</td><td>");
document.write(x[i].getElementsByTagName("LANGUAGE")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("DESCRIPTION")[0].childNodes[0].nodeValue);
document.write("</td></td>");
document.write("</td><td>");
document.write(x[i].getElementsByTagName("EDITBY")[0].childNodes[0].nodeValue);
document.write("</td></tr>");
}
document.write("</table>");
</script>
</body>
</html>
//------------------------------ これは XML ファイル res.xml です
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<?xml-stylesheet type="text/xsl" href="tt.xsl"?>
<LIBRARY>
<TERM>
<EDITBY>giovanni</EDITBY>
<WORD>ciao</WORD>
<LANGUAGE>Italian</LANGUAGE>
<DESCRIPTION>
it means hi
</DESCRIPTION>
</TERM>
<TERM>
<EDITBY>giacomo</EDITBY>
<WORD>all</WORD>
<LANGUAGE>italian</LANGUAGE>
<DESCRIPTION>
significa tutto
</DESCRIPTION>
</TERM>
</LIBRARY>
//----------------------------------
これは XSL tt.xsl です
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="LIBRARY/TERM">
<xsl:sort select="WORD"/>
<tr>
<td><xsl:value-of select="LANGUAGE"/></td>
<td><xsl:value-of select="WORD"/></td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
結果、データは表示されますが、アルファベット順ではありません
どんな助けでも大歓迎です