加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 获取包含HTML标记的文本子字符串

发布时间:2020-12-16 06:41:40 所属栏目:asp.Net 来源:网络整理
导读:获取包含 HTML标记的文本的子字符串 假设您需要以下前10个字符: “ p这是第1段 / p这是第2段 / p” 输出将是: “ p这是” 返回的文本包含未关闭的P标记.如果将其呈现给页面,则后续内容将受到打开的P标记的影响.理想情况下,首选输出将关闭任何未关闭的HTML
获取包含 HTML标记的文本的子字符串

假设您需要以下前10个字符:

“< p>这是第1段< / p>这是第2段< / p>”

输出将是:

“< p>这是”

返回的文本包含未关闭的P标记.如果将其呈现给页面,则后续内容将受到打开的P标记的影响.理想情况下,首选输出将关闭任何未关闭的HTML标记,与其打开时相反:

“< p>这是< / p>”
我想要一个返回HTML子字符串的函数,确保没有标签保持未闭合状态

解决方法

您需要教您的代码如何理解您的字符串实际上是HTML或 XML.只是将它视为一个字符串就不允许你按照你想要的方式使用它.这意味着首先将其转换为正确的格式,然后使用该格式.

使用XSL样式表

如果您的HTML是格式良好的XML,请将其加载到XMLDocument中,然后通过执行类似以下操作的XSL样式表运行它:

<xsl:template match="p">
  <xsl:value-of select="substring(text(),10)" />
</xsl:template>

使用HTML解析器

如果它不是格式良好的XML(如在您的示例中,中间突然出现< / p>),则需要使用a HTML parser of some kind,例如HTML Agility Pack(请参阅此question about C# HTML parsers).

自HTML is too complex to parse using regex起,不要使用正则表达式.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读