Javaを使用してXSLT拡張機能で配列を使用しようとしています。Java XSLT拡張機能付き配列
私は以下のエラーを取得しています:私は配列を使用
Caused by: java.lang.ClassCastException: org.apache.xpath.objects.XObject
cannot be cast to org.apache.xpath.objects.XNodeSet.
方法です。私はこのためにXALAN解析を使用している拡張クラスメソッドXSL内
public static String[] getEvents(String contractIdStr,String tradeIdStr) {
return new String[]{"MacroType","Type","SubType"};
}
、
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:partyrefrule="com.converter.Rules"
exclude-result-prefixes="partyrefrule">
<xsl:variable name="vLastNegoTradeEvents">
<xsl:value-of select="partyrefrule:getEvents($cVal,$tVal)"/>
</xsl:variable>
<xsl:message terminate="no">
<xsl:value-of select="$vLastNegoTradeEvents[0]"/>
</xsl:message>
</xsl:stylesheet>
。
私は答えは分かりませんが、製品固有のものであることに注意してください。 Xalanで動作するものは、別のXSLTプロセッサでは動作しない可能性があります。拡張機能の動作方法は、XSLT標準やJAXP APIでは定義されていません。 –
私はエラーが明らかだと思います:XPath関数と演算子のデータ型を拡張することはできません。 XSLTとXPathの拡張オブジェクトは、その値を保持して渡すためだけに使用できますが、それらの操作は拡張関数/要素の実装で処理する必要があります。 –
@Alejandro:他の人とこの作品は良いパーサー! – srinannapa