日期:2014-05-17  浏览次数:20551 次

在 xsl 中做用户筛选的问题
最近在做 xsl 解析, 在 xml 中通过 href 指定 xsl, 这样打开 xml 文件时, 可以通过 href 指定的 xls 对 xml 做一个友好展示
现在的问题是, 准备在 xsl 中增加一个用户筛选, 允许用户对要看到的数据做进一步筛选

xml 示例如下 (filter.xml)

<?xml-stylesheet type="text/xsl" href="filter.xsl"?>
<root>
  <group name="group1">
    <item id="1">item 1</item>
    <item id="2">item 2</item>
  </group>
  <group name="group2">
    <item id="1">item a</item>
    <item id="2">item b</item>
  </group>
</root>


------最佳解决方案--------------------
推荐一下,以便更多的人关注
------其他解决方案--------------------
路过...
------其他解决方案--------------------
邹大版的贴,顶起
------其他解决方案--------------------
引用:
邹大版的贴,顶起

转。NET 版
------其他解决方案--------------------
引用:
邹大版的贴,顶起


没理由地顶起
------其他解决方案--------------------
学习学习                                         
------其他解决方案--------------------
不小心点了进来,看到那么多勋章晃花了眼,这究竟是一个什么样的问题?
看了后才发现差距了,xsl从来多没用过。
------其他解决方案--------------------
对应的 xsl 如下

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="/root">
    <xsl:param name="GroupName" select ="(group/@name)[1]"/>
    <html>
      <head>
        <meta content="text/html" http-equiv="Content-Type"></meta>

        <script language="javascript" name="Filter">
          <![CDATA[
function filter_group(sName) {
    var iXml = document.XMLDocument;
    var iXsl = document.XSLDocument;
    //iXsl.addParameter("GroupName", sName);  //

    var iPara = iXsl.selectSingleNode('//xsl:param[@name="GroupName"]');
    alert(iPara.text);

    var iHtml = iXml.transformNode(iXsl);
    document.write(iHtml);
}
]]>
        </script>
      </head>

      <body>
        <table>