Ошибка исключения Java javax.xml.transform.TransformerConfigurationException при преобразовании XML с использованием xslt - PullRequest
0 голосов
/ 17 мая 2018

Я использовал один xslt, чтобы найти xpath элемента.Я запускаю xslt, используя Java-кодирование.Но я получил ошибку исключения.Кодировка xslt выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
    <xsl:output omit-xml-declaration="yes" indent="no"/>
<xsl:template match="/">
<value>
<xsl:for-each select="//section">
    <xsl:variable name="xpath-name" select="string-join((for $node in ancestor::* return $node/name(),name()),'/')"></xsl:variable>
    <path><xsl:value-of select="$xpath-name"/></path>
</xsl:for-each>
</value>
</xsl:template>
</xsl:stylesheet>

Ява-кодирование, которое я использовал, как показано ниже:

package firstspring;
import java.io.File;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

    public static void main(String[] args) {
    TransformerFactory tFactory = TransformerFactory.newInstance();
            StreamSource xmlInputFile = new StreamSource("E:/test/test.xml");
            StreamSource xslTransformationFile = new StreamSource("E:/test/my.xsl");
            StreamResult xmlOutputFile = new StreamResult("E:/test/out.xml");
            try {
                Transformer transformer = tFactory
                        .newTransformer(xslTransformationFile);
                transformer.transform(xmlInputFile, xmlOutputFile);
            } catch (TransformerConfigurationException e) {
                e.printStackTrace();
            } catch (TransformerException e) {
                e.printStackTrace();
            }
            System.out.println("Done!");
try{

}
catch (Exception e) {
    // TODO: handle exception
}

    }

}

Ниже произошла ошибка исключения:

FATAL ERROR:  'file:///E:/test/my.xsl: line 8: Required attribute 'select' is missing.'
javax.xml.transform.TransformerConfigurationException: file:///E:/test/my.xsl: line 8: Required attribute 'select' is missing.
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source)
    at firstspring.fileread.main(fileread.java:36)

Пожалуйста, помогите всем:

1 Ответ

0 голосов
/ 18 мая 2018

Как уже упоминалось в комментариях @Martin Honnen, вам нужно добавить либо saxon9he.jar, либо некоторую другую версию jar для поддержки XSLT 2.0.

Глядя на ваш код Java, он выглядит как выпросто пытаемся проверить преобразование, так как логика записана в методе main.В случае, если этот класс является частью проекта Java, вы можете добавить зависимость jar-файла в classpath проекта.

Если класс является частью развертываемого viz..war файл, затем добавьте jar в папку /WEB-INF/lib, и зависимость будет обработана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...