xslt에 맵을 리턴하는 java 메소드가 있습니다.xslt 2.0 : HashMap 사용
XSLT 메서드 호출 -
<xsl:variable name="mapValue" select="class:returnMap()">
자바 방법 -
public Map<String,List<String>> returnMap(){
Map<String,List<String>> map = new HashMap<String,List<String>>();
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
map.put("a",list);
map.put("b",list);
return map
}
가 어떻게 XSLT 2.0의 맵의 목록 값을 가져올 수 있습니까? i는 아래 형식을 이용하여 변수에 값을 할당하려 ,
<xsl:variable name="valueOfA" select="$mapValue/entry[@key='a']"/>
<xsl:variable name="valueOfB" select="$mapValue/entry[@key='b']"/>
을하지만, 내가 아래 예외를 얻었다.
XPTY0019: Required item type of first operand of '/' is node(); supplied value has item type java:java.util.LinkedHashMap
$ mapValue 값을 표시하려고하면 인쇄가 잘됩니다.
어떤 XSLT 2.0 프로세서를 사용합니까, 어떤 버전, 어떤 버전입니까? 예를 들어 귀하의 설명서를 확인하셨습니까? https://www.saxonica.com/html/documentation9.7/extensibility/ 또는 http://manual.altova.com/RaptorXML/raptorxmlserver/index.html?fxmisc_java.htm –
또한 Saxon을 9.8 (모든 에디션) 당신은 XPath 3.1 맵과 함께 XSLT 3을 사용할 수 있습니다. https://www.saxonica.com/html/documentation/javadoc/net/sf를 사용하여 자바 맵을 XPath 3.1'맵 '으로 간단히 변환 할 수 있습니다 /saxon/s9api/XdmMap.html#makeMap-java.util.Map- 코드의 Java 측을 매핑하고이를 XSLT/XPath로 반환하면 https : // www에서'map : keys '와 같은 함수를 사용할 수 있습니다 .w3.org/TR/xpath-functions/# func-map-keys. Saxon HE의 경우 통합 확장 기능으로 함수를 구현하고 등록해야합니다. –