Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

506
Visualizações
Obtener valor (XPath) usando la variable XSL - xslt

Al intentar analizar el siguiente xml ,

 <root> <SelectValue>One</SelectValue> <!-- Tends to Vary --> <SubRoot> <!-- Iterate elements inside it using [ SelectValue] --> <One>One</One> <Two>Two</Two> <Three>Three</Three> </SubRoot> </root>

con debajo de xsl ,

 <xsl:template match="/root"> <xsl:variable name="columns" select="SelectValue"/> <xsl:for-each select="SubRoot"> --> <tr> <td> <xsl:value-of select="SubRoot/@*[local-name()=$columns]"/> </td> </tr> </xsl:for-each>

Recupera html-tags vacías mientras espero algo como a continuación,

 <table> <thead> <th>One</th> </thead> <tbody> <tr> <td>one</td> </tr> <tbody> </table>

Estoy tratando de pasar el valor dentro <SelectValue> para obtener los nodos dentro <SubRoot>

¿Alguna idea aquí?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

No reconozco el mensaje de error que cita (ni siquiera parece estar en inglés), pero recibo un error cuando intento ejecutar su código. La razón es que su nombre de variable no es válido; necesitas cambiar:

 <xsl:variable name="$columns" select="..."/>

para:

 <xsl:variable name="columns" select="..."/>

Use el prefijo $ cuando se refiera a la variable, no cuando la defina.


Tenga en cuenta también que una expresión XPath que comienza con / es una ruta absoluta , que comienza en el nodo raíz. Por lo tanto, ninguna de sus expresiones de select , con la excepción de /root , seleccionará nada. Supongo que estás tratando de hacer algo como:

 <xsl:template match="/root"> <xsl:variable name="columns" select="SelectValue"/> <tr> <td> <xsl:value-of select="SubRoot/*[local-name()=$columns]"/> </td> </tr> </xsl:template>

que dado su ejemplo de entrada devolverá:

 <tr> <td>One</td> </tr>
over 4 years ago · Santiago Trujillo Relatório

0

Dentro de xsl:for-each select="SubRoot", la SubRaíz es el nodo de contexto, por lo que no debe seleccionar una SubRaíz adicional. Entonces quieres

 <xsl:for-each select="SubRoot"> <tr> <td> <xsl:value-of select="@*[local-name()=$columns]"/> </td> </tr>
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda