我環顧四周了很多,但一直沒能找到一個內置的.NET方法只會逃避特殊的XML字符: <
,>
,&
,'
和"
如果不是一個標籤。有條件逃避特殊的XML字符
例如,採取以下文字:
Test& <b>bold</b> <i>italic</i> <<Tag index="0" />
我希望它被轉換爲:
Test& <b>bold</b> <i>italic</i> <<Tag index="0" />
注意,標籤沒有逃脫。我基本上需要將此值設置爲InnerXML
的XmlElement
,結果,這些標記必須保留。
我已經考慮實現我自己的解析器並使用StringBuilder
來儘可能地優化它,但它可能會變得非常討厭。我也知道那些可以簡化事物的標籤(只有:br,b,i,u,blink,flash,Tag)。此外,這些標籤可以自行閉合的標籤
(e.g. <u />)
或容器標籤
(e.g. <u>...</u>)
HTML不是XML ...像'富酒吧真的
'。如果你想自己做這件事,你會感到很開心。作爲選項,考慮HtmlAgilityPack將HTML解析爲一個合理的樹,並仔細地將所有節點插入XML ... –
沒有什麼可以簡單地正確處理'測試值爲< 3 but > 1'。 – Bobson
@Bobson'<3'不是一個有效的開始標籤,所以你可以弄清楚。但是你的觀點仍然存在,'<' and '>'被轉義以消除解析中的歧義。有些情況下,任何合理的解析器都會選擇一條路徑,而您可能想要另一條路徑。 – climbage