获取包含HTML标签的文本子串
假设您需要以下内容的前 10 个字符:
"
这是第1段
这是第2段
"输出将是:
“
这是”
返回的文本包含一个未闭合的 P 标签。如果将其呈现到页面,则后续内容将受到打开的 P 标记的影响。理想情况下,首选输出将关闭所有未关闭的 HTML 标记,而不是打开它们的时间:
“
这是
” 我想要一个返回 HTML 子字符串的函数,确保没有未关闭的标签最佳答案
您需要教会您的代码如何理解您的字符串实际上是 HTML 或 XML。仅仅把它当作一个字符串来对待它不会让你按照你想要的方式使用它。这意味着首先将其转换为正确的格式,然后使用该格式。
使用 XSL 样式表
如果您的 HTML 是格式正确的 XML,请将其加载到 XMLDocument
中并通过执行类似以下操作的 XSL 样式表运行它:
<xsl:template match="p">
<xsl:value-of select="substring(text(), 0, 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 .
关于asp.net - 获取包含 HTML 标签的文本子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/759342/