Java jsp中的多个xslt

Java jsp中的多个xslt,java,xml,jsp,xslt,Java,Xml,Jsp,Xslt,我目前正忙于工作。我有一个jsp调用另一个jsp,该jsp调用多个xml用于xslt 我尝试了我的XSLT,它们都很有效。但不是在我的JSP中。只有第一种方法有效 规则如下: 我必须使用xslt,即使在Java中一切都会更简单 我从导入的第一个XML中需要两个参数,一个参数指示我何时可以找到第二个XML,第二个参数将由第三个xslt用于选择要转换的节点 我没有发布第一个xsl和xml,因为它们工作得非常好。其他两个单独工作,但在jsp调用时不工作 XML 2 c1021585 笔名

我目前正忙于工作。我有一个jsp调用另一个jsp,该jsp调用多个xml用于xslt

我尝试了我的XSLT,它们都很有效。但不是在我的JSP中。只有第一种方法有效

规则如下:

  • 我必须使用xslt,即使在Java中一切都会更简单
  • 我从导入的第一个XML中需要两个参数,一个参数指示我何时可以找到第二个XML,第二个参数将由第三个xslt用于选择要转换的节点
我没有发布第一个xsl和xml,因为它们工作得非常好。其他两个单独工作,但在jsp调用时不工作

XML 2


c1021585
笔名

最后是JSP

    <%@ taglib prefix="wai"  uri="/WEB-INF/tld/wai.tld" %>
<%@ taglib prefix="gui"  uri="/WEB-INF/tld/gui.tld" %>
<%@ taglib prefix="lnk"  uri="/WEB-INF/tld/linking.tld" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<% String g_pagePath = (String)request.getAttribute("pagePath"); %>
<%g_pagePath = (g_pagePath == null) ? "/" : g_pagePath ; %>

<%@page contentType="text/xml;charset=UTF-8" import="java.io.*,java.util.*,com.cavitrine.frontoffice.web.utils.*"%>
<% String idEvt = request.getParameter("id"); %>
<%
Utils util = Utils.getInstance();

String urlXml = "Adresse1.xml";
String xml = util.loadURL(urlXml, request, response);
pageContext.setAttribute("inputDoc", xml);

if(xml != null && !xml.equals("")){

%>
<div id="__contentRoot">
    <div class="wrapper">
        <div class="main">
            <div class="bloc-wrapper">
                <div class="bloc-article bloc-event">

                    <c:import url="Adresse1.xml" var="xmlImport" charEncoding="UTF-8" />
                    <x:parse xml="${xmlImport}" var="output"/>

                    <c:set var="banque"><x:out select="$output/Article/Local/Id" escapeXml="false"/></c:set>
                    <c:set var="idArticle"><x:out select="$output/Article/ShortName" escapeXml="false"/></c:set>


                    <c:import url="Adresse2.xsl" var="stylesheet" charEncoding="UTF-8" />
                    <x:transform xml="${inputDoc}" xslt="${stylesheet}"></x:transform>

                </div>
            </div>
<%

String urlXml2 = "Adresse3.xml";
String xml2 = util.loadURL(urlXml2, request, response);
pageContext.setAttribute("inputDoc2", xml2);

String urlXml3 = "Adresse4.xml";
String xml3  = util.loadURL(urlXml3, request, response);
pageContext.setAttribute("inputDoc3", xml3);

%>
            <aside>

                <c:import url="Adresse5.xsl" var="stylesheet2" charEncoding="UTF-8" />
                <x:transform xml="${inputDoc2}" xslt="${stylesheet2}"></x:transform>
                <x:transform xml="${inputDoc3}" xslt="${stylesheet2}">
                    <x:param name="idEnCours" value="${idArticle}"></x:param>
                </x:transform>

            </aside>
        </div>
    </div>
</div>

感谢您提供的所有线索:)

<Articles>
  <Article>
    <Title>Titre de l'inititive locale</Title>
    <Url>https://extranet_elus/publication/Pages/1awpt5kkei2.aspx</Url>
    <ShortName>1awpt5kkei3</ShortName>
    <ThumbNail>http://referentiel.nouvelobs.com/file/14954208.png</ThumbNail>
    <CatchPhrase><![CDATA[voici notre initiative]]></CatchPhrase>
    <Content><![CDATA[contenu HTML voici notre initiative]]></Content>
    <StartDate>1987/03/29</StartDate>
    <EndDate>2099/07/10</EndDate>
    <LocalBank>
        <Id>c1021585</Id>
        <Name>Nom de la caisse locale</Name>
    </LocalBank>
  </Article>
  <Article></Article>
  <Article></Article>...
</Articles>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:param name="idEnCours" />

<xsl:template match="/LocalBank">
        <div class="bloc-caisse">
            <header><xsl:value-of select="/Local/Name"/></header>
            <ul>
                <li>
                    <p><xsl:value-of select="/Local/Description"/></p>
                </li>
                <li>
                    <a class="button">En savoir plus</a>
                </li>
            </ul>
        </div>
</xsl:template>


<xsl:template match="/Articles">

    <div class="bloc-last">
        <header>Les 3 derniers articles</header>
        <ul>
            <xsl:call-template name="Article">
                <xsl:with-param name="cpt">1</xsl:with-param>
                <xsl:with-param name="IdOnScreen"/>
            </xsl:call-template>
        </ul>
    </div>
</xsl:template>

<xsl:template name="Article">
    <xsl:param name="cpt" />
    <xsl:param name="IdOnScreen" />
    <xsl:param name="MaxCount" select="4"/>

    <xsl:if test="$cpt &lt; $MaxCount">

        <xsl:variable name="idArticle">
            <xsl:value-of select="./Article[$cpt]/ShortName"/>
        </xsl:variable>

        <xsl:if test="$idArticle != $IdOnScreen">

            <xsl:variable name="newCpt" select="$cpt+1" />

            <li>
                <xsl:variable name="articleLink"><xsl:value-of select="./Article[$cpt]/Url"/></xsl:variable>
                <a alt="titre de l'article" href="{$articleLink}">
                    <span><xsl:value-of select="./Article[$cpt]/Title"/></span>
                    <p><xsl:value-of select="./Article[$cpt]/CatchPhrase"/></p>
                    <span class="button"></span>
                </a>
            </li>

            <xsl:call-template name="Article">
                <xsl:with-param name="cpt" select="$newCpt" />
                <xsl:with-param name="IdOnScreen" select="$IdOnScreen"/>
                <xsl:with-param name="MaxCount" select="$MaxCount"/>
            </xsl:call-template>

        </xsl:if>

        <xsl:if test="$idArticle = $IdOnScreen">
            <xsl:variable name="newMax" select="$MaxCount+1" />
            <xsl:variable name="newCpt" select="$cpt+1" />
            <xsl:call-template name="Article">
                <xsl:with-param name="cpt" select="$newCpt" />
                <xsl:with-param name="IdOnScreen" select="$IdOnScreen"/>
                <xsl:with-param name="MaxCount" select="$newMax"/>
            </xsl:call-template>

        </xsl:if>

    </xsl:if>

</xsl:template>
    <%@ taglib prefix="wai"  uri="/WEB-INF/tld/wai.tld" %>
<%@ taglib prefix="gui"  uri="/WEB-INF/tld/gui.tld" %>
<%@ taglib prefix="lnk"  uri="/WEB-INF/tld/linking.tld" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="f" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<% String g_pagePath = (String)request.getAttribute("pagePath"); %>
<%g_pagePath = (g_pagePath == null) ? "/" : g_pagePath ; %>

<%@page contentType="text/xml;charset=UTF-8" import="java.io.*,java.util.*,com.cavitrine.frontoffice.web.utils.*"%>
<% String idEvt = request.getParameter("id"); %>
<%
Utils util = Utils.getInstance();

String urlXml = "Adresse1.xml";
String xml = util.loadURL(urlXml, request, response);
pageContext.setAttribute("inputDoc", xml);

if(xml != null && !xml.equals("")){

%>
<div id="__contentRoot">
    <div class="wrapper">
        <div class="main">
            <div class="bloc-wrapper">
                <div class="bloc-article bloc-event">

                    <c:import url="Adresse1.xml" var="xmlImport" charEncoding="UTF-8" />
                    <x:parse xml="${xmlImport}" var="output"/>

                    <c:set var="banque"><x:out select="$output/Article/Local/Id" escapeXml="false"/></c:set>
                    <c:set var="idArticle"><x:out select="$output/Article/ShortName" escapeXml="false"/></c:set>


                    <c:import url="Adresse2.xsl" var="stylesheet" charEncoding="UTF-8" />
                    <x:transform xml="${inputDoc}" xslt="${stylesheet}"></x:transform>

                </div>
            </div>
<%

String urlXml2 = "Adresse3.xml";
String xml2 = util.loadURL(urlXml2, request, response);
pageContext.setAttribute("inputDoc2", xml2);

String urlXml3 = "Adresse4.xml";
String xml3  = util.loadURL(urlXml3, request, response);
pageContext.setAttribute("inputDoc3", xml3);

%>
            <aside>

                <c:import url="Adresse5.xsl" var="stylesheet2" charEncoding="UTF-8" />
                <x:transform xml="${inputDoc2}" xslt="${stylesheet2}"></x:transform>
                <x:transform xml="${inputDoc3}" xslt="${stylesheet2}">
                    <x:param name="idEnCours" value="${idArticle}"></x:param>
                </x:transform>

            </aside>
        </div>
    </div>
</div>