Categorías destacadas
programacion php    
Artículo
1
¡votar!

 El API JAXP


Sustituir e Insertar Texto

Lo siguiente que haremos es personalizar un poco el analizador, podemos ver cómo obtener información que normalmente ignoraría. Pero antes de poder hacer esto, tenemos que aprender unos pocos conceptos importantes de XML. En esta sección aprenderemos sobre.

  • Manejar caracteres especiales ("<", "&", etc.)

  • Manejar texto con síntaxix al estilo XML.

. Manejar Caracteres Especiales

En XML, una entidad es una estructura XML (o de texto plano) que tiene un nombre. Referenciar la entidad por su nombre hace que ésta sea insertada dentro del documento en la posición de la referencia de entidad. Para crear una referencia de entidad, el nombre de la entidad se rodea de un ampersand y un punto y coma.

&entityName;

Más adelante, cuando aprendamos cómo escribir un DTD, veremos que podemos definir nuestras propias entidades, para que &yourEntityName; expanda todo el texto que hemos definido para esa entidad. Por ahora, nos enfocaremos en las entidades predefinidas y las referencias de caracteres que no requieren ninguna definición especial.

. Entidades Predefinidas

Una referencia de entidad como &amp; contiene un nombre (en este caso amp) entre los delimitadores de inicio y final. El texto al que se refiere (&) es sustituido por el nombre, como una macro en un programa C o C++. La siguiente tabla mustra las entidades predefinidas para caracteres especiales.

Caracter Referencia
& &amp;
< &lt;
> &gt;
" &quot;
' &apos;

.  Referencias de Caracteres

Una referencia de caracter como &#147; contiene una almohadilla (#) seguida por un número. El número es el valor Unicode para un caracter como 65 para la letra “A”, 147 para la comilla izquierda o 148 para la comilla derecha. En este caso, el nombre de la entidad es la almohadilla seguida por los dígitos que identifican el caracter.

. Usar un Referencia de Entidad en un Documento XML

Supongamos que queremos insertar una línea como está en nuestro documento XML.

	Market Size < predicted

El problema es que al poner esto directamente en un fichero XML el analziador ve un ángulo izquierdo (<), y empieza a buscar un nombre de etiqueta, lo que desactiva el analizador. Para evitar este problema, ponemos &lt; en el fichero, en lugar de "<".

Nota:

Los resultados de las siguientes modificaciones están contenidos en slideSample03.xml. El resultado del procesamiento se puede ver en Echo07-03.log.

Añadimos el texto en negrita de abajo a nuestro fichero slideSample.xml:

    <!-- OVERVIEW -->
    <slide type="all">
      <title>Overview</title>
      ...
    </slide>

    <slide type="exec">
      <title>Financial Forecast</title>
      <itdestacar>Market Size &lt; predicted</itdestacar>
      <itdestacar>Anticipated Penetration</itdestacar>
      <itdestacar>Expected Revenues</itdestacar>
      <itdestacar>Profit Margin </itdestacar>
    </slide>

</slideshow>

Cuando ejecutemos el programa Echo sobre nuestro fichero XML, veremos la siguiente salida:

ELEMENT: <itdestacar>
CHARS:   Market Size 
CHARS:   <
CHARS:    predicted
END_ELM: </itdestacar>

El analizador convierte la referencia en la entidad que representa, y pasa la entidad a la aplicación.

. Manejar Texto con Síntaxis al Estilo XML

Cuando manejamos grandes bloques de XML o HTML que incluyen muchos caracteres especiales, podría ser inconveniente reemplazarlos con la entidad de referencia apropiada. Para estas situaciones, podemos usar una sección CDATA

Nota:

Los resultados de la siguientes modificaciones están en el fichero slideSample04.xml. El resultado del procesamiento lo puedes ver en Echo07-04.log.

Una sección CDATA trabaja como <pre>...</pre> en HTML, -- todos los espacios en blanco en una sección CDATA son significantes, y los caracteres no son interpretados como XML. Una sección CDATA empieza con <![CDATA[ y termina con ]]>. Añadimos el texto en negrita de abajo a nuestro fichero slideSample.XML para definir una sección CDATA para una diapositiva ficticiamente técnica.

     ...
    <slide type="tech">
      <title>How it Works</title>
      <itdestacar>First we fozzle the frobmorten</itdestacar>
      <itdestacar>Then we framboze the staten</itdestacar>
      <itdestacar>Finally, we frenzle the fuznaten</itdestacar>
      <itdestacar><![CDATA[Diagram.                         
           frobmorten <------------ fuznaten
               |            <3>        ^
               | <1>                   |   <1> = fozzle
               V                       |   <2> = framboze    
             staten--------------------+   <3> = frenzle
                            <2>
      ]]></itdestacar>
    </slide>
</slideshow>

Cuando ejecutemos el programa Echo sobre el nuevo fichero, veremos la siguiente salida:

  ELEMENT: <itdestacar>
  CHARS:   Diagram.          
 frobmorten <------------ fuznaten
     |            <3>        ^
     | <1>                   |   <1> = fozzle
     V                       |   <2> = framboze    
   staten--------------------+   <3> = frenzle
                  <2>
      
 END_ELM: </itdestacar>

Podemos ver aquí que el texto de la sección CDATA ha llegado como un string de caracteres completamente sin interpretar.

Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
Rafael Montoliu Peleja dice:

Me ha aclarado muchas ideas

08/05/2010, a las 20:06:02
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon