Lectura y manipulación de HTML dentro de XML CDATA

Cuando tomo HTML de una sección XML CDATA, lo manipulo (en mi caso, realizo métodos de cadena C# en el texto dentro de la sección CDATA) y luego muestro la versión editada... automáticamente comenta mi primera etiqueta HTML:

<![CDATA[ <p>Lorem ipsum dolor sit amet...</p> ]]>

convierte a esto en la página:

<!--[CDATA[ <p--> Lorem ipsum dolor sit amet... ]]>

que rompe el estilo de ese primer párrafo y muestra la etiqueta CDATA de cierre después del contenido.

¿Cómo puedo solucionar esto?

EDIT: No pude encontrar nada sobre esto, así que probé algunas cosas para las cacas y las risitas, y esto funcionó:

<![CDATA]> <p>Lorem ipsum dolor sit amet...</p> </]]>

que convirtió a esto en la página:

<!--[CDATA]--> <p>Lorem ipsum dolor sit amet...</p> <!--]]-->

Sin embargo... no estoy seguro si esto afectará mi página de forma negativa.

¿Hay alguna otra manera?

preguntado el 22 de mayo de 12 a las 17:05

¿Cómo lo conviertes? Veamos tu código.

¿Cómo "agarras HTML"? ¿Cómo lo "manipulas"? ¿Cómo se "muestra"? ¿Y qué es "eso" que comenta automáticamente su primera etiqueta HTML? -

primero creo un objeto con una propiedad Content que contiene el InnerXml del nodo que contiene el CDATA HTML. Luego manipulo el contenido encontrando marcadores de posición de imagen y reemplazándolos con elementos html (imágenes con subtítulos). Uso los métodos IndexOf, Remove e Insert para buscar, eliminar y reemplazar el contenido. -

Parece ser un problema entre XmlNode.InnerXml y CDATA. Cuando uso InnerText y CDATA... todo funciona bien. No tengo que agregar marcas de etiquetas a las etiquetas CDATA. -

También funciona si simplemente uso XmlNode.InnerXml y omito las etiquetas CDATA por completo. Debo ser un novato. -

1 Respuestas

Cuando usas XmlNode.InnerXml en un elemento XML que contiene CDATA... comenta el primer elemento.

Utiliza XmlNode.InnerText y el CDATA funcionará.

Si debe: use InnerXml... puede omitir las etiquetas CDATA y también funcionará.

Si usted necesita ambas InnerXml y CDATA, no tengo una respuesta... o un escenario donde los dos se usarían juntos

contestado el 23 de mayo de 12 a las 20:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.