¿Cómo prevenir la codificación HTML para expresiones incrustadas en XML Literals(VB.NET)?
xml-literals (2)
Con el siguiente código:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= message.ToString() %>
</div>
Dim m = x.ToString()
... si el mensaje es HTML, los caracteres <y> se convierten a <
y &rt;
.
¿Cómo puedo obligarlo a omitir esta codificación?
Debe abrir el snippit HTML como un documento XML y anexar el nodo del documento al nodo Div que está creando.
Si desea agregar XML (o HTML) a un documento XML existente, debe agregarlo como XML y no como texto (causa que se codifica).
¿Cuál es el tipo de su variable de message
? Si el message
es un elemento XElement
, simplemente deje la llamada .ToString
como esta:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= message %>
</div>
Dim m = x.ToString()
Si el message
es de otro tipo (como StringBuilder
), haz esto:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= XElement.Parse(message.ToString()) %>
</div>
Dim m = x.ToString()