为什么HtmlAgilityPack会在我的html中添加一些字符



这是我的代码:

Dim input = "<div><textarea>something</div></textarea>"    
Dim doc As New HtmlAgilityPack.HtmlDocument
doc.OptionOutputAsXml = True
doc.LoadHtml(Input)
Using writer As New StringWriter
doc.Save(writer)
Dim res = writer.ToString
End Using

"res"的值为:

"<?xml version="1.0" encoding="windows-1255"?>
<div>
<textarea>
//<![CDATA[
something
//]]>//
</textarea>
</div>"

html的结果是:我的文本区域

我该如何预防?

根据我的理解,用HtmlAgilityPack设置文本区域值的答案隐含了原因:

A<text区域>元素没有value属性。它的内容是它自己的文本节点:

<text区域>
部分内容
<text区域>

为了安全地模拟相同的东西,HAP必须将内容包含在//<![CDATA[部分中。

HAP的源代码对相关行有以下注释:

// tags whose content may be anything
ElementsFlags.Add("textarea", HtmlElementFlag.CData);

所以,你无法阻止它。

最新更新