<xsl:template match="type">
<option value="{id}">
<xsl:value-of select="kind1" />
</option>
</xsl:template>

解决方案 »

  1.   

    我试过了,你这个id打算怎么取值呀?还用<xsl:apply-templates select="id" />,到底怎么声明这个id呀?我试了试,发现并没有形成我要的那种结果。
      

  2.   

    <option>
    <xsl:attribute name="value">{id}<xsl:attribute>
    </option>
      

  3.   

    这个id可以显示,但是,我想要的是这样的
    <option value="id">kind1</option>
    id可以显示出来了,但是,我用<xsl:value-of select="kind1" />就显示不出来了。我现在是这样写的
    <option>
                <xsl:attribute value="id">
                    <xsl:value-of select="id"/>
                </xsl:attribute>
            </option>
            <xsl:value-of select="kind2"/>
    那么显示出的结果是kind2中的内容.我提交后,显示的都是乱码,我用jsp处理的结果,转码都不能解决这个问题,不知道,大家都是怎么处理的。我想要的结果是:<option value="1">农民</option>
    而现在显示的结果是:<option value="农民">农民</option>
    用我上面的写法就是出现这样的结果,大家说怎么办呀?
      

  4.   

    <option>
    <xsl:attribute name="value"><xsl:value-of select="id"/><xsl:attribute>
    <xsl:value-of select="kind2"/>
    </option>乱码定是html jsp xml三个文件的字符集设置不统一
      

  5.   

    谢谢yyzh(yyzh) ,终于实现了我的那种样式了。
    但是,中文问题还没有解决。它总是乱码。我设置了jsp,xml的字符集,他们都是GB2312的,怎么还是出现乱码呀?郁闷。
    ***************************
    xml文件字符集设置
    <?xml version="1.0" encoding="gb2312"?>
    <?xml-stylesheet type="text/xsl" href="1.xsl" ?>***************************
    xsl文件字符集设置
    <?xml version="1.0" encoding="gb2312" ?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">***************************
    jsp文件字符集设置
    <%@ page contentType="text/html; charset=gb2312" language="java"%>jsp页面是用来接受从xml文件传来的信息的,但就是这里显示的都是乱码
    ?§???? ???????§???? ???????§?????????????
    我使用转码都不管用,照样是乱码。不知道这个字符集还要怎么设置了?
      

  6.   

    如果是表单提交数据,jsp文件接收,那么乱码原因就很多了,而且也不好说,搜索下论坛吧,讨论乱码的帖子非常多
      

  7.   

    谢谢yyzh(yyzh)的帮助啦!呵呵
    但我搜了网上的资料,大都是说jsp的中文问题,没有涉及到xml传到jsp页面的中文问题。
      

  8.   

    <?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" version="1.0" encoding="gb2312" indent="yes"/>...在encoding处指明编码
      

  9.   

    to:tigeryu(吴越小虎),我试过你的代码了,还是不行,总是出现乱码。现在我把我的代码都帖出来,希望大家帮我看看,到底该怎么做?*****************************
    xml文件(1.xml)<?xml version="1.0" encoding="GBK"?>
    <?xml-stylesheet type="text/xsl" href="1.xsl" ?><root>
        <type>
            <id name="test">1990</id>
            <kind1>科技</kind1>
            <kind2>农业科技</kind2>
            <content>农业科技的简介</content>
        </type>
        <type>
            <id name="test">1991</id>
            <kind1>科技</kind1>
            <kind2>工业科技</kind2>
            <content>工农业科技的简介</content>
        </type>
        <type>
            <id name="test">1992</id>
            <kind1>科技</kind1>
            <kind2>国防科技</kind2>
            <content>国防科技的简介</content>
        </type>
        <type>
            <id name="test">1993</id>
            <kind1>教育</kind1>
            <kind2>小学教育</kind2>
            <content>小学教育的简介</content>
        </type>
        <type>
            <id name="test">1994</id>
            <kind1>教育</kind1>
            <kind2>中学教育</kind2>
            <content>中学教育的简介</content>
        </type>
        <type>
            <id name="test">1995</id>
            <kind1>教育</kind1>
            <kind2>大学教育</kind2>
            <content>大学教育的简介</content>
        </type>
    </root>
    **************************
    xsl文件(1.xsl)<?xml version="1.0" encoding="GBK" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="GBK" indent="yes"/>    <xsl:template match="/">
            <html>
                <head>
                    <title>XML 文件的测试</title>
                </head>            <body>
                    <p align="center">
                        <span>XML的测试</span>
                    </p>
                    <div id="Layer1" name="Layer1">
                        <xsl:apply-templates select="root"/>
                    </div>
                </body>
            </html>
        </xsl:template>    <xsl:template match="root">
            <form method="get" action="1.jsp">
        <input>
    <xsl:attribute name="type">
        text
    </xsl:attribute>
    <xsl:attribute name="name">
        name
    </xsl:attribute>
    <xsl:attribute name="value">
        <xsl:value-of select="."/>
    </xsl:attribute>
        </input>
                <select name="type1">
                    <option value="">=请选择=</option>
                    <xsl:apply-templates select="type"/>
                </select>            <input type="submit" value="OK"/>
                <input type="reset" value="Reset"/>
            </form>
        </xsl:template>    <xsl:template match="type">
            <option>
    <xsl:attribute name="value"><xsl:value-of select="id"/></xsl:attribute>
    <xsl:value-of select="kind2"/>
    </option>
        </xsl:template>
    </xsl:stylesheet>****************************
    jsp文件(1.jsp)<%@ page import="java.util.Enumeration"%>
    <%@ page contentType="text/html; charset=GBK" language="java"%><html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>123</title>
    <link href="/mics/css/style.css" rel="stylesheet" type="text/css">
    </head>
    <body>
    <%
        Enumeration en=request.getParameterNames();
        while(en.hasMoreElements()){
    String key=(String)en.nextElement();
            out.println(key+"=="+request.getParameter(key));
        }%>
    </body>
    </html>请大家帮忙看看,到底怎样,我从xml文件提交到jsp页面后,就不出现乱码了。
      

  10.   

    1.把xsl里面的<form method="get" action="1.jsp">改成method="post"
    get方法其实是用url传递参数的,就像a.jsp?a=xxx&b=xxx 这样
    url传递参数容易乱码,因为jsp服务器一般是unicode url如果你非要用get方法 那么需要强制转换一下,URLEncoder.encode(参数,"utf-8")2.在jsp里面写上这一行request.setCharacterEncoding("GBK");3.<meta http-equiv="Content-Type" content="text/html; charset=GBK">这个也GBK
      

  11.   

    补充一下
    使用url传递参数,如果jsp文件编码是gb2312,而传递的参数是个繁体字或者生僻字,极其容易出现乱码?不过出乱码好像不应该乱成这个样子 ?§???? ???????§???? ???????§?????????????还有,可以去baidu看一下 查询一个关键词"乱码"时 baidu的url是这样 http://www.baidu.com/s?wd=%C2%D2%C2%EB&cl=3 而不是 http://www.baidu.com/s?wd=乱码cl=3楼主明白了么?
      

  12.   

    to:yyzh(yyzh) 
    谢谢,你的大力帮助!昨天晚上,我在Tomcat5上,完全可以跑起来我的这个xml,并不是乱码,这可能和服务器有关,我在公司用的是tomcat4,它就有这个问题,估计是这个原因了。哎!但是,公司还要用tomcat4,不想用tomcat5,这个为难死俺了!这可咋办呢?yyzh(yyzh) 你遇到过这种情况吗?怎办?
      

  13.   

    乱码不应存在侥幸心理,不管在哪出现乱码都是隐患,没准哪天爆发令你焦头烂额,你按照我上面说的那3条验证了么?尤其是第1条! 别说 TomCat4和5,就是同样是TomCat 在不同的操作系统上都有可能出乱码,乱码的原因太多了,你得从根本上解决问题,千万不要侥幸
      

  14.   

    to:yyzh(yyzh) 
    你说的这三条,我都试过了,在Tomcat4下还是出现乱码的问题,但放到Tomcat5上就没有问题。
      

  15.   

    主要是我用TomCat4的时候,Java也是初学,后来就一直用5了,不过在5上面,出乱码无非就那几个原因,我也都说了,老兄,实在不行就升级到5算了,你完全可以不告诉单位领导,不是个多大的事!
      

  16.   

    to: yyzh(yyzh)
    谢谢你的帮助,好了,接贴了。
    公司这边比较迂腐,还就要用Tomcat4,哎!我再想办法吧。