Как предотвратить кодирование HTML для встроенных выражений в XML-литералах (VB.NET)?
Со следующим кодом:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= message.ToString() %>
</div>
Dim m = x.ToString()
... если сообщение является HTML, то символы <и> преобразуются в <
а также &rt;
,
Как я могу заставить его пропустить эту кодировку?
2 ответа
Решение
Какой тип вашего message
переменная? Если message
является XElement
, тогда просто оставь .ToString
позвоните так:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= message %>
</div>
Dim m = x.ToString()
Если message
это какой-то другой тип (например, StringBuilder
), затем сделайте это:
Dim x As System.Xml.Linq.XElement = _
<div>
<%= XElement.Parse(message.ToString()) %>
</div>
Dim m = x.ToString()
Вам нужно открыть фрагмент HTML как документ XML и добавить узел документа к узлу Div, который вы создаете.
Если вы хотите добавить XML (или HTML) к существующему XML-документу, вы должны добавить его как XML, а не как текст (причина, которая кодируется).