0

私の質問を見直してくれてありがとう。

XSLT プロセッサとして saxon Java API を使用しています。saxon jar ファイルによって返される例外をキャッチするのが困難になります。

javax 例外を出力できます。ただし、saxon から返される文字列で例外を取得する必要があります。

以下の関数は、xml を変換するために使用しています。

import java.io.File;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

public class Main {

    /**
     * Simple transformation method.
     * @param sourcePath - Absolute path to source xml file.
     * @param xsltPath - Absolute path to xslt file.
     * @param resultDir - Directory where you want to put resulting files.
     */
    public static void simpleTransform(String sourcePath, String xsltPath,
                                       String resultDir) {
        TransformerFactory tFactory = TransformerFactory.newInstance();
        try {
            Transformer transformer =
                tFactory.newTransformer(new StreamSource(new File(xsltPath)));

            transformer.transform(new StreamSource(new File(sourcePath)),
                                  new StreamResult(new File(resultDir)));
        } catch (Exception e) {
            e.message();
        }
    }

    public static void main(String[] args) {
        //Set saxon as transformer.
        System.setProperty("javax.xml.transform.TransformerFactory",
                           "net.sf.saxon.TransformerFactoryImpl");

        simpleTransform("d:/project/hob/AppModule.xml",
                        "d:/project/hob/create-fragment.xslt", "C:/");

    }
}

サクソンの例外を文字列に入れることを提案できますか。以下は、例外が返された saxon jar ファイルの例です。

SXJE0008: xs:yearMonthDuration を必要な Java タイプに変換できません

ありがとう、ディーパック

4

1 に答える 1

0

これは非常に基本的な Java の質問のようです。

Java 例外からメッセージ テキストを取得する一般的な方法は次のとおりです。

String err = null;
try {
  ....
} catch (Exception e) {
  err = e.getMessage();
}

これについてサクソンに固有のものは何もありません。

于 2015-05-03T16:02:51.220 に答える