Próbowałem przekazać w3c.dom.Document
, Element
i NodeList
jako parametry transformacji xslt.przekazywanie węzłów xml/dokumentów/fragmentów jako parametrów do xslt
Chcę być w stanie przetworzyć go w XSLT:
<xsl:param name="links" />
<xsl:template match="/">
<record>
<xsl:for-each select="$links/*">
<test />
</xsl:for-each>
</record>
</xsl:template>
I przekazać parametr jako:
Document params = createLinksParams(links);
transformer.setParameter("links", params);
otrzymuję ten wyjątek:
„Nieprawidłowy konwersji z 'com.sun.org.apache.xerces.internal.dom.DocumentImpl' na 'node-set'. '
Próbowałem również exslt:node-set()
, xalan:nodeset()
itp., Ale to nie działa.
Wygląda na to, że wewnętrznie xalan oprócz własnej implementacji węzła.
Jak mogę zrobić coś podobnego bez ponoszenia tego problemu?
Nie mogę użyć document($param)
, ponieważ konstruuję dokument w locie.
Dziękuję, zdecydowałem się na 4 – ithkuil
Rozwiązanie 3 nie działa, gdy węzeł, który ma zostać przekazany jako parametr, pochodzi z dokumentu DOM, który nie jest przekształcanym dokumentem. – ithkuil