Dato questo XML, esiste un xpath che mi fornirà i valori "test" e "nome"?
Domanda
Devo ottenere il valore dell'attributo 'test' nel tag xsl:when e l'attributo 'name' nel tag xsl:call-template.Questo XPath mi avvicina molto:
..../xsl:template/xsl:choose/xsl:when
Ma questo restituisce solo gli elementi "quando", non i valori esatti degli attributi di cui ho bisogno.
Ecco uno snippet del mio XML:
<xsl:template match="field">
<xsl:choose>
<xsl:when test="@name='First Name'">
<xsl:call-template name="handleColumn_1" />
</xsl:when>
</xsl:choose>
Soluzione
Steve Cooper ha risposto alla prima parte.Per la seconda parte puoi usare:
.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name
Che corrisponderà specificamente a xsl:when nello snippet sopra.Se vuoi che corrisponda in generale, puoi utilizzare:
.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name
Altri suggerimenti
vuoi .../xsl:template/xsl:choose/xsl:when/@test
Se vuoi effettivamente ottenere il valore "Nome" dall'attributo test, sei sfortunato: il contenuto all'interno dell'attributo è solo una stringa e non un pezzo di xml, quindi non puoi xpatharlo .Se è necessario ottenerlo, è necessario utilizzare la manipolazione delle stringhe (ad esempio, sottostringa) per ottenere il contenuto corretto