3
にHashMapをアクセスしている間、私のように、コードのスニペットを問題を持っている:を想定するとXSL
Map mappingId = new HashMap();
mappingId.put("1", "1000");
transformer.setParameter("mappingId", mappingId);
transformer.transform(...);
と、私はこの
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:map="xalan://java.util.Map"
extension-element-prefixes="map">
<xsl:param name="mappingId" />
<xsl:template match="/">
<xsl:variable name="id" select="map:get($mappingId, '1')" />
<MappedId><xsl:value-of select="id"/></MappedId>
</xsl:template>
</xsl:stylesheet>
からキーを取得しようとしたシンプルなXSLTを持っている私が取得します次のエラー:
エラー: 'java.util.Map.get([ExpressionContext、] #STRING、#STRING)メソッドが見つかりませんでした。 致命的なエラー:'スタイルシートをコンパイルできませんでした '。
誰かがXSLへのJavaマップへのアクセス方法を教えてくれますか?
あなたは手の込んだていただけますか?理解できませんでした。私は、MapObjectオブジェクトをelementIdMapという名前に変更し、それをパラメータとして渡しました。まだ同じエラーが発生しています。 –
XSLTのパラメータは、文字列、数値、ブール値、またはノードセットにすることができます。あなたのケースでは、XSLTプロセッサがマップを文字列に変換したように見えるので、文字列パラメータで 'get'関数を探しています。私はXSLTのJava拡張に慣れていませんが、XSLTに渡す前にマップをノードセットに変換する必要があると思います。 – MiMo