У меня в этой школе работает просьба сделать адресную книгу и отфильтровать по алфавиту. всякий раз, когда я пытаюсь отфильтровать свою, я перезагружаю свою страницу и показываю все имена, а не фильтрую ее вообще. В итоге я обнаружил, что всякий раз, когда я вызываю функцию apply (), страница перезагружается и не вносит никаких изменений, которые я только что сделал. это не фильтр вообще я в недоумении о том, что не так ... кто-нибудь есть идеи? Вот основная часть xslt: я пытаюсь изменить практически любое значение, чтобы оно соответствовало шаблонам, которые были даны нам в классе, но я не могу заставить его работать. (часть, которую я не касаюсь - это функция apply и init (кроме изменения имен переменных)
Большая часть поиска по xslt здесь сосредоточена на XPATH, а не на части js ...
// <![CDATA[
function initFF(){
xmlDoc = document.implementation.createDocument("","",null);
xslDoc = document.implementation.createDocument("","",null);
xmlDoc.load(" CarnetAdresse.xml");
xslDoc.load("CarnetAdresse.xslt");
xslDoc.addEventListener("load", initPointeurFF, false);
}
function nameSpaceResolver(prefix){
return "http://www.w3.org/1999/XSL/Transform";
}
function initPointeurFF(){
noeudFiltre = xslDoc.evaluate("//xsl:apply-templates[@select='individu']/@select",
xslDoc,
nameSpaceResolver,
XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
objProcessor = new XSLTProcessor();
objProcessor.importStylesheet(xslDoc);
}
function apply(){
tempDoc = document.implementation.createDocument("","",null);
frag = objProcessor.transformToFragment(xmlDoc.documentElement, tempDoc);
document.getElementById("main").innerHTML="";
document.getElementById("main").appendChild(frag);
}
function showByLetter(val){
noeudFiltre.value = val;
apply();
}
Теперь, когда я вызываю функцию apply, не важно, что я передаю в качестве значения XPATH в моей функции showByLetter, страница перезагружается и показывает все адреса, которые есть в моем xml.
вот мои шаблоны, если это необходимо;
<body onload="initialiser()">
<table>
<tr>
<td onclick="showByLetter('individu[nom = "Test"]')">test</td>>
</tr>
</table>
<div id="main">
<table cellspacing="0" cellpadding="0" class="main-table">
<xsl:apply-templates select="individu">
<xsl:sort select="nom" order="ascending"/>
</xsl:apply-templates>
</table>
</div>
<xsl:template match="individu">
<xsl:for-each select="./*">
<tr>
<td class="table-name"><xsl:value-of select="name(.)" /></td>
<td class="table-content"><xsl:value-of select="." /></td>
</tr>
</xsl:for-each>
</xsl:template>