Нет доступарезультаты как переменные - PullRequest
0 голосов
/ 03 октября 2019

Я использую xlst в файле jsp для создания шаблона источника xsl:

<x:transform xslt="${xslt}" doc="${xmlString}"></x:transform>

, который отлично работает и отображает ожидаемый HTML-код на странице. Однако мне нужно получить доступ к этому результату в качестве переменной для дальнейшего использования. Я попытался добавить var="printData" в качестве атрибута, но

  1. Форматирование не выполняется, и вместо <x:transform>
  2. не появляется текст. Если я пытаюсь распечатать ${printData},[#document: null] напечатано.

Я пытался найти документацию, но я не нашел почти никакой информации об использовании var, верно? Проблема где-то еще?

1 Ответ

0 голосов
/ 14 октября 2019

Решено не с var в преобразовании, а путем передачи предварительного преобразования данных и преобразования его через Java с

public static String elaborateXml(String xslPath, String xml) {
        try {
            StringReader reader = new StringReader(xml);
            StringWriter writer = new StringWriter();
            TransformerFactory tFactory = TransformerFactory.newInstance();
            Transformer transformer = tFactory.newTransformer(
                    new javax.xml.transform.stream.StreamSource(xslPath));

            transformer.transform(
                    new javax.xml.transform.stream.StreamSource(reader), 
                    new javax.xml.transform.stream.StreamResult(writer));

            String result = writer.toString();
            return result;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
...