【问题标题】:HTML all text between two <div> tags vb.netHTML 两个 <div> 标签之间的所有文本 vb.net
【发布时间】:2014-04-22 14:53:22
【问题描述】:

我正在开发一个程序,它将 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>

我知道如何读出&lt;div&gt; 标签内的属性。 我想读出 div 标签的开始和结束之间的所有信息。

div 标签之间的文本是由 HTML 组成的文本,我想存储在我的数据库中。这意味着必须读取其中的所有 HTML 标记(如您在下面看到的 &lt;p&gt; 和 &lt;/p&gt;)。

如何在 VB.net 中阅读所有这些文本 目前我正在使用 Xdocument 和 Xelement 与 linq 结合,但我不知道该怎么做。

【问题讨论】:

  • 向我们展示您目前拥有的代码。
  • 我在解析 HTML 方面取得了更大的成功,只是将其视为文本并使用字符串函数。

标签: html vb.net linq


【解决方案1】:

System.Xml.XmlDocument 使这很容易,如果您希望 div 标签内的文本没有 HTML 标记,请使用 .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

【讨论】:

  • 感谢 innerText 和 innerXml 部分是我所需要的。我现在修复它创建元素的 XmlReader 并使用它的 ReadInnerXml 函数
【解决方案2】:

我很幸运能用HTML Agility Pack 操作html。您也可以在 nuget 上找到它。

使用Xdocument 和Xelement 的一个潜在问题是html 通常不一定是xml。

【讨论】:

    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2021-10-09
    • 2023-03-20
    • 2013-03-18
    • 1970-01-01
    相关资源
    最近更新 更多