Konvertieren von string zu Knoten-set

In meiner xsl-Datei,
Ich erhalte ein separates xml-Dokument (neben dem Haupt-xml-Dokument
ich bin transformieren) als string-parameter (param)

sagen, meine param name ist seconddoc

<xsl:param name="seconddoc"></xsl:param>

und der param Wert ist folgende (wieder, ich bin immer das ganze als string)

<products>
    <product>
        <id>1</id>
        <name>pro-1</name>
    </product>
    <product>
        <id>2</id>
        <name>pro-2</name>
    </product>
    <product>
        <id>3</id>
        <name>pro-3</name>
    </product>
</products>

Kann ich drucken Sie das gesamte Zeichenfolge wie folgt

<xsl:value-of select="$seconddoc" />

Aber ich möchte, Durchlaufen die Daten (string), anstatt gesamten Wert auf einmal.
mein end-Ziel ist es die Daten zu laden, um eine select-option.

Ich müde wie diese:

<select>
    <xsl:for-each select="$seconddoc/products/product">
        <option value="{id}">
            <xsl:value-of select="name" /></option>
    </xsl:for-each>
</select>

aber ich bin immer TransformerException. "Ungültige Konvertierung von 'java.lang.String' zu 'node-set'.

update:

Dies ist, was ich in meiner jsp-Seite

<x:transform xml="${mainxmldoc}" xslt="${xslt}">
<x:param name="seconddoc" value="<%=xmlString %>"/>
</x:transform>
  • Welcher XSLT-Prozessor benutzt du und gibt es irgendeine Möglichkeit zu übergeben, den parameter als Knoten-set in den ersten Platz? Oder, ansonsten kann es passieren das Sie einen URI, um die zusätzlichen XML -, die könnten Sie dann Last mit der document Funktion?
  • Dank Ian Roberts. Ich bin neu in xslt. Ich glaube nicht, ich bin mit jedem zusätzlichen Prozessor. die xml-Datei, ich bin immer von einer jsp-Seite. und seine als dynamisch generiert. Also keine URI. Wie kann ich übergeben Sie es als Knotenmenge von JSP irgendeinen Vorschlag?
  • Konnte Sie Bearbeiten die Frage, die auch den relevanten Teil der JSP-Seite, wo Sie den Aufruf der XSLT-Transformation?
  • Dies ist, was ich in meiner JSP-Seite........ <x:Transformation xml="${mainxmldoc}" xslt="${xslt}"> <x:param name="seconddoc" value="<%=xmlString %>"/> </x:transform>
  • Scheint ähnlich zu dieser Frage stackoverflow.com/questions/3959497/... Versuchen Sie es mit exslt:node-set aber ich bezweifle, dass es funktionieren wird.
  • ja ich bin es müde, dass (stackoverflow.com/questions/3959497/...) hat nicht funktioniert

Schreibe einen Kommentar