forum.bitel.ru
http://forum.bitel.ru/

Динамический код и XSLT
http://forum.bitel.ru/viewtopic.php?f=1&t=7478
Страница 1 из 1

Автор:  lda [ 29 ноя 2012, 17:37 ]
Заголовок сообщения:  Динамический код и XSLT

Господа разработчика, а возможен ли вызов функции из динамического кода в XSLT?

Функцию из своей библиотеки вызвать могу, а из динамического кода не получается.

Автор:  dimOn [ 29 ноя 2012, 17:40 ]
Заголовок сообщения:  Re: Динамический код и XSLT

хм………

Автор:  lda [ 05 дек 2012, 16:54 ]
Заголовок сообщения:  Re: Динамический код и XSLT

dimOn писал(а):
хм………

В TODO?

Автор:  dimOn [ 05 дек 2012, 17:42 ]
Заголовок сообщения:  Re: Динамический код и XSLT

а как это должно выглядеть?

Автор:  lda [ 05 дек 2012, 17:57 ]
Заголовок сообщения:  Re: Динамический код и XSLT

Пишу свою функцию в дин коде:
Код:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ru.ttk.billing.xlst;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.XMLUtils;

/**
 *
 * @author lda
 */
public class ContractInfoUL {
    private Setup setup = Setup.getSetup();
    private Connection con;
    public Element get(String cid){
        Element result = null;
        con = this.setup.getDBConnectionFromPool();
        Document doc = XMLUtils.newDocument();

        result = doc.createElement("data");
        doc.appendChild(result);
        result.setAttribute( "operator_name", "ООО Рога  и Копыта");
        result.setAttribute( "operator_site", "http://www.ru");

        return result;
    }
}


Далее в вызываем например в карточке регистрации договора:
Код:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:xalan="http://xml.apache.org/xalan"
   xmlns:fo="http://www.w3.org/1999/XSL/Format"
   xmlns:svg="http://www.w3.org/2000/svg"
        xmlns:contract_info="ru.ttk.billing.xlst.ContractInfoUL" version="1.0">
   
        <xalan:component prefix="contract_info" functions="get">
            <xalan:script lang="javaclass" src="xalan://ru.ttk.billing.xlst.ContractInfoUL"/>
        </xalan:component>
....

<xsl:template match="/card">
.....
    <xsl:variable name="cid" select="contract/@cid" />
    <xsl:variable name="info" select="contract_info:get( string($cid) )"/>
    <xsl:variable name="operator_name" select="$info/@operator_name" />
    <xsl:variable name="operator_site" select="$info/@operator_site" />
....


вот как то так...

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/