Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
-Tutoriales

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.

 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network