JDKを使用してJavaでXSLTプロセッサを使用してXMLを変換する方法は?
@Raedwaldが言ったように、トランスフォーマーにJava apiを使用するためのサンプルは次のとおりです。
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import Java.io.File;
import Java.io.IOException;
import Java.net.URISyntaxException;
public class TestMain {
public static void main(String[] args) throws IOException, URISyntaxException, TransformerException {
TransformerFactory factory = TransformerFactory.newInstance();
Source xslt = new StreamSource(new File("transform.xslt"));
Transformer transformer = factory.newTransformer(xslt);
Source text = new StreamSource(new File("input.xml"));
transformer.transform(text, new StreamResult(new File("output.xml")));
}
}
入力は文字列またはDOMSourceからでも、出力はDOMSource etc からでも可能です。
Java標準ライブラリは、XML解析のための(XSLT)変換インターフェースを提供します。クラスのAPIドキュメントを参照してください javax.xml.transform.Transformer
およびjavax.xml.transform.TransformerFactory
。
私はxsltが初めてです。誰でもJavaでxslt処理する方法を教えてもらえますか?
これは、使用しているJavaベースのXSLTプロセッサによって異なります。各XSLTプロセッサには独自のAPIがあります。
たとえば、Saxon 6.5.5(XSLT 1.0の場合)およびSaxon 9.1.07(XSLT 2.0の場合)はJavaで記述されています。ドキュメントはhttp://www.saxonica.com/documentation/documentation.xmlにあります
ほとんどすべてのXSLTプロセッサにはコマンドラインユーティリティがあり、XSLT変換を実行するためにプログラムを作成する必要はありません。
たとえば、ここにあります:Saxon 9.x変換を開始する方法コマンドライン。
ここに、コマンドラインから常にSaxonを使用する方法を示します:
Java -Xms2048M -Xmx10000M -jar
C:\xml\Parsers\Saxon\Ver.9.1.0.7\J\saxon9.jar
-t -repeat:1 -o %out% %xml% %xsl% %param[ name=\"value\"]%
どこ %out%
は出力ファイルの名前、%xml%
はxmlファイル、%xsl%
はプライマリxsltファイルであり、%param[ name=\"value\"]%
は、外部パラメーターの名前と値のリストです(ほとんど常に空のままにします)。
JAXPは、XSLT変換を扱う実装に依存しない方法を提供します。 チュートリアルはこちら 始めましょう。巨大なXSLTを使用している場合や、複数のXSLTを使用している場合は、パフォーマンス上の理由から、解析されたXSLTテンプレートをキャッシュするオプションもあります。 この記事 はxsltのキャッシュ方法を説明しています