2016-07-19 5 views
1

は、私はこのように、関連するXSLファイルを参照するXMLファイルがあります。JavaのXML <?xml-stylesheet ...?>ディレクティブを呼び出す方法は?

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="my-transform.xsl"?> 

<my-root> ..... 

を、私は変換を適用すること、org.w3c.dom.Documentとしてそれを読んでもらいたいです。

XPATH /processing-instruction('xml-stylesheet')を使用してスタイルシート処理命令を抽出してから、XSLファイルを手作業でロードしてTransformerで適用することを検討しています。

しかし、これを手動で行う必要があります。ファイルを読み込んで自動的に埋め込み変換を適用する方法はありますか?

更新:TransformerFactory.getAssociatedStylesheet(...)は、xml-stylesheetの値がSourceと非常に近いことを確認するため、@raphaëλに感謝します。それ以上に自動化されたものはありますか?

+0

XSLをXMLに埋め込む必要がありますか、他の方法は問題ありませんか? – nawazlj

+1

'getAssociatedStylesheet'(https://docs.oracle.com/javase/8/docs/api/javax/xml/transform/TransformerFactory.html#getAssociatedStylesheet-javax.xml.transform.Source-java.lang)を使用できます。 String-java.lang.String-java.lang.String-) 'Source'を取得する –

+0

@nawazlj XMLはスタイルシートを指定するのが理想的です。なぜなら実際にXMLはダウンストリームのクライアントユーザによって書き込まれるからです。私は彼らにXSLTファイルを与えさせることでXMLをカスタマイズするというアイデアを売っているので、XMLと一緒に自分の簡略表記を開発して私に送ることができます。実際には、彼らはすでにその短縮形を開発しましたが、それはビルドプロセスにあり、私はそれらを私のサービスの一部として持ってきています。ですから、それらのスタイルシートが適用されなければならないのは、それらのスタイルシートのうちのどれを適用するかです。 – SusanW

答えて

0

[OK]を、他の誰も答え、私は今答えを知っている。スタイルシートは自動的には適用されません。しかし、TransformerFactory.getAssociatedStylesheet(...)を使用してスタイルシートを取得すると、xml-stylesheetの値がSourceであることがわかります。その後、手動で適用することができます。

これを指摘してくれたraphaëλに感謝します。

関連する問題