我正在开发一个程序,它将HTML文本转换为可以放在数据库中的文章。
html看起来像这样:
<HTML>
<div class="article" code="article-0001" title="title">
<p>blablabla</p>
<p>blablablablablabblablablablablablablablabla</p>
<p>blablablablablablablablablabla</p>
<p></p>
<p>blablablablablablablablablblablablablablablablablablablablablablablablablabla</p>
<p></p>
<p>blablablablablablablablablablablablablabla</p>
<p></p>
</div>
<div class="article" code="article-0002" title="title2">
<p>blablabla</p>
<p>blablablablablabblablablablablablablablabla</p>
<p>blablablablablablablablablabla</p>
<p></p>
<p>blablablablablablablablablblablablablablablablablablablablablablablablablabla</p>
<p></p>
<p>blablablablablablablablablablablablablabla</p>
<p></p>
</div>
</HTML>
我知道如何读出<div>
标记内的属性。
我想读出div标签的开始和结束之间的所有信息。
div标签之间的文本是HTML组成的文本,我想存储在我的数据库中。这意味着必须阅读其中的所有HTML标记(例如您在下面看到的<p>
&amp; </p>
)。
我怎样才能在VB.net中阅读所有这些文字
目前我正在使用Xdocument
&amp; Xelement
结合了linq,但我无法弄清楚如何做到这一点。
答案 0 :(得分:1)
System.Xml.XmlDocument使这很容易,如果你想在没有HTML标记的div标签里面的文本使用.InnerText,即
Dim doc = New System.Xml.XmlDocument()
doc.LoadXml(xml)
Dim divs = doc.FirstChild.ChildNodes
For Each div As System.Xml.XmlNode In divs
Console.WriteLine(div.InnerText)
Next
如果要保留标记,请使用.InnerXml,即:
Dim doc = New System.Xml.XmlDocument()
doc.LoadXml(xml)
Dim divs = doc.FirstChild.ChildNodes
For Each div As System.Xml.XmlNode In divs
Console.WriteLine(div.InnerXml.ToString())
Next
答案 1 :(得分:1)
我有幸用HTML Agility Pack操纵html。您也可以在nuget上找到它。
使用Xdocument
和Xelement
的一个潜在问题是html通常不一定是xml。