我现在正在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上自动完成?
也许其他人有更好的想法来解决这个问题。
答案 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加载新闻字符串。还有其他选择吗?