このコードは Java であり、Saxon を使用しています
xml およびいくつかのセカンダリ xml ソースを変換する変換関数を実装しています 入力はすべてファイルではないため、document() またはファイルを直接定義する他のメソッドを使用できません
String transform(String xml, List<String> secondaryXmls, String xslt);
変換されたxml結果を出力します
xslt から単一の xml ファイルに変換を適用することには成功していますが、secondaryXmls も利用する変換を適用するのは困難です。私は調査を行いましたが、これらを適用する正しい方法を見つけることができませんでした
ここにコードのスナップショットがあります
TransformerFactory tFactory = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null);
Document transformerDoc = loadXMLFromString(xslt);
Source transformerSource = new DOMSource(transformerDoc);
Transformer transformer = tFactory.newTransformer(transformerSource);
Document sourceDoc = loadXMLFromString(xml);
Source source = new DOMSource(sourceDoc);
DOMResult result = new DOMResult();
transformer.transform(source, result);
Document resultDoc = (Document) result.getNode();
return getStringFrom(resultDoc);
ありがとう!
編集:
どちらがより良い方法です:
すべての xml を連結し、変換し、連結されたセカンダリ xml をフィルタリングして元の部分のみを返す
追加するコードを書く
<xsl:variable name="asd" select="document('asd')">
xslt 文字列の上に