我有一些返回XMLNode的InnerXML的代碼。如何在.NET中輕鬆地轉義XML實體
該節點只能包含一些文本(使用HTML)或XML。
例如:
<XMLNode>
Here is some <strong>HTML</strong>
<XMLNode>
或
<XMLNode>
<XMLContent>Here is some content</XMLContnet>
</XMLNode>
,如果我得到的HTML標籤返回的XML實體<XmlNode>
的InnerXML。
我不能使用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處理所有可能的實體,或者是否有一個類可以爲我做。
這是一個有效的響應,問題中提供的示例是無效的XML – 2008-10-14 15:43:17