У меня есть код, который возвращает InnerXML для XMLNode.
Узел может содержать только некоторый текст (с HTML) или XML.
Например:
<XMLNode>
Here is some <strong>HTML</strong>
<XMLNode>
или
<XMLNode>
<XMLContent>Here is some content</XMLContnet>
</XMLNode>
если я получу InnerXML для <XmlNode>
, теги HTML будут возвращены как объекты XML.
Я не могу использовать InnerText, потому что мне нужно иметь возможность получать содержимое XML. Поэтому все, что мне действительно нужно, - это способ избежать экранирования тегов HTML, потому что я могу определить, является ли это XML или нет, и действовать соответственно.
Полагаю, я мог бы использовать HTMLDecode, но будет ли это декодировать все объекты в кодировке XML?
Обновление: Полагаю, я немного выше, поэтому вот проясненный сценарий:
У меня есть XML-документ, который выглядит следующим образом:
<content id="1">
<data><p>A Test</p></data>
</content id="2">
<content>
<data>
<dataitem>A test</dataitem>
</data>
</content>
Если я сделаю:
XmlNode xn1 = document.SelectSingleNode("/content[@id=1]/data");
XmlNode xn2 = document.SelectSingleNode("/content[@id=2]/data");
Console.WriteLine(xn1.InnerXml);
Console.WriteLine(xn2.InnerXml);
xn1 вернет
<p>A Test</p>
xn2 вернет <dataitem>A test</dataitem>
Я уже проверяю, является ли возвращаемое значение XML (в случае xn2), поэтому все, что мне нужно сделать, это отключить <
и т. Д. В xn1.
HTMLDecode делает это, но я не уверен, что это будет работать для всего. Таким образом, остается вопрос, будет ли HTMLDecode обрабатывать все возможные объекты или есть класс где-нибудь, что сделает это за меня.