XSL - Crear nodos opcionales

 
Vista:

Crear nodos opcionales

Publicado por Edgar (2 intervenciones) el 11/11/2008 00:15:38
Hola a todos

Esto creando una xsl para pasar de html a xml, y necesito saber si un atributo existe o no para incluirlo. Esto lo puede hacer con un if para cada atributo pero seria re largo.
Hay alguna forma de crear un atributo opcional en xml? de tal forma de que si no se incluye no lo cree?

Espero que me puedan ayudar ;)

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Inclusión de atributos opcionales en la conversión de HTML a XML

Publicado por Alejandro (227 intervenciones) el 06/07/2023 22:10:01
¡Hola, Edgar! En XML, los atributos son opcionales por naturaleza, lo que significa que no es necesario incluirlos en un elemento si no se requieren. Si un atributo no se incluye, simplemente no estará presente en el elemento XML resultante.

Aquí tienes un ejemplo para ilustrar esto:

Supongamos que tienes el siguiente HTML de origen:
1
<div class="mi-clase" id="mi-id"></div>

Y deseas convertirlo a XML utilizando XSLT. Puedes tener una plantilla en XSLT como esta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<xsl:template match="div">
  <elemento>
    <xsl:if test="@class">
      <atributo-clase>
        <xsl:value-of select="@class"/>
      </atributo-clase>
    </xsl:if>
    <xsl:if test="@id">
      <atributo-id>
        <xsl:value-of select="@id"/>
      </atributo-id>
    </xsl:if>
  </elemento>
</xsl:template>

En este ejemplo, utilizamos `xsl:if` para verificar si el atributo `@class` y `@id` están presentes en el elemento `<div>`. Si están presentes, los incluimos en el elemento XML resultante. Si no están presentes, simplemente se omiten y no se generan en el XML resultante.

Entonces, si el atributo no se incluye en el HTML de origen, no se creará en el XML resultante. No es necesario utilizar una lógica adicional para crear atributos opcionales en XML, ya que esto es parte de la naturaleza del propio XML.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar