我一直在寻找解决方案,但找不到。
我有一个xml文件和xsl文件,用于转换和显示xml文件。我可以通过 xsl 文件对 xml 文档进行排序和过滤,它工作正常。
<xsl:variable name="filval" select="'720p'" />
<xsl:for-each select="Movie_Prices/price[quality=$filval]">
我想要一个带有选择框的 html 表单和与之关联的 onchange
事件,当用户更改选择框的值时,将采用该值并替换 select ="'720p'"
在变量中或直接放入 Xpath 以更新结果。
<Movie_Prices>
<price id="1" status="use">
<quality>720p</quality>
<amount currency="LKR">20</amount>
</price>
<price id="2" status="void">
<quality>720p</quality>
<amount currency="LKR">30</amount>
</price>
<price id="3" status="use">
<quality>1080p</quality>
<amount currency="LKR">40</amount>
</price>
<price id="4" status="void">
<quality>1080p</quality>
<amount currency="LKR">50</amount>
</price>
<price id="5" status="use">
<quality>3D</quality>
<amount currency="LKR">80</amount>
</price> <price id="6" status="void">
<quality>3D</quality>
<amount currency="LKR">120</amount>
</price>
</Movie_Prices>
这可能吗?只要结果正常,xsl 或 javascript 的任何组合就足够了。搜索了很多,但没有找到解决方案。
感谢任何帮助并提前致谢
最佳答案
根据您有多少选项,您可以简单地使用多个样式表,只包含 filval
变量并使用 xsl:include
导入其余部分:
720p.xsl
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:variable name="filval" select="'720p'" />
<xsl:include href="main.xsl"/>
</xsl:stylesheet>
对 1080p.xsl 和 3d.xsl 做同样的事情,把你所有的模板规则放在 main.xsl 然后选择相应的文件使用 javascript 更改选择框。
关于javascript - 将 html 表单与 XSL 绑定(bind)以动态过滤 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699369/