2014-03-19 110 views
0

我正在一個asp.net頁面上工作,並且在數據庫中有一條新聞。我在主頁上顯示了最新消息的簡短版本。我使用子字符串方法來削減25個字符後的其他新聞。它的工作很好。問題是,當「新聞」有一個像列表標籤:在Asp.Net中強制關閉HTML標記

<p> Hello all! </p> 
<ul> 
    <li> Telling you something: 
    <ul> 
     <li> Telling you that... 
    </ul> 
    </li> 
    <li> Telling you something else 
    <li> 
... 

IE 9節是不正確切割後25個字符的一部分 - 它showes後25個字符多一個列表點。在Firefox和Chrome上它的工作...但不是與IE v9。我認爲問題是開放的html標籤和IE9的自動完成。是否有任何選項可以強制關閉所有標記(來自代碼背後)或避免IE9上的自動完成?

也許別人有更好的主意來解決這個問題。

+0

您是否正在使用JavaScript加載完整文本並將其縮短到瀏覽器中? – Alexander

回答

0

在將數據返回給客戶端之前,您是否可以將HTML字符串加載到服務器端的XmlDocument

XmlDocument xmlDocument = new XmlDocument(); 
xmlDocument.LoadXml("{your-html-string}"); 

如果是這樣,你可以操縱你通過除去不需要的節點,如下所示XmlDocumentRemoving nodes from an XmlDocument。爲此,您可以循環訪問源XmlDocument,並僅將這些節點複製到適合您的彙總條件(例如,長度爲< = 25)的目標XmlDocument中。

一旦你完成了你的目標XmlDocument,你可以輸出你的縮寫XmlDocument作爲一個字符串(àla Convert XmlDocument to String)。

這會給你你所需要的,但不必通過強制截斷特定長度來破壞你的Html。

如果您的HTML與XML不兼容(不是嚴格的XHTML),那麼您可以嘗試使用Html Agility Pack解析您的源HTML。

0

無法將html字符串保存在服務器上的xml文件中。我直接從DB加載新聞字符串。有沒有其他的選擇?