强制关闭Asp.Net中的Html标签

时间:2014-03-19 15:48:53

标签: c# javascript jquery html asp.net

我现在正在asp.net页面上工作,我在数据库中有一些包含新闻的字符串。我在主页上显示了最新新闻的简短版本。我使用子串方法在25个字符之后删除剩余的新闻。它的工作非常好。问题在于'新闻'有列表标签,如:

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

IE v.9没有正确切割25个字符之后的部分 - 它在25个字符之后再显示一个列表点。在Firefox和Chrome上它的工作......但不是IE v9。我认为问题是打开的html标签和IE9的自动完成。有没有选项强制关闭所有标签(从后面的代码)或避免在IE9上自动完成?

也许其他人有更好的想法来解决这个问题。

2 个答案:

答案 0 :(得分:0)

在将数据返回给客户端之前,是否可以将HTML字符串加载到服务器端的XmlDocument

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

如果是这样,您可以通过删除不需要的节点来操纵XmlDocument,如下所示:Removing nodes from an XmlDocument。为此,您可以循环遍历源XmlDocument,并仅将这些节点复制到符合汇总条件的目标XmlDocument中(例如,长度&lt; = 25)。

完成目标XmlDocument后,可以将缩写的XmlDocument输出为字符串(àlaConvert XmlDocument to String)。

这可以为您提供所需的内容,但不必通过强制截断特定长度来破坏您的Html。

如果您的HTML不兼容XML(严格来说不是XHTML),那么您可以尝试使用Html Agility Pack来解析源HTML。

答案 1 :(得分:0)

无法将html字符串保存在服务器上的xml文件中。我直接从DB加载新闻字符串。还有其他选择吗?