/ / HTML 2つの<div>タグ間のすべてのテキストvb.net - html、vb.net、linq

2つの<div>タグ間のすべてのテキストをHTMLで表示するvb.net - html、vb.net、linq

私は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> そして、 </p> あなたは以下を参照してください)を読む必要があります。

どのように私はVB.netでこのすべてのテキストを読むことができます 現時点では、私は Xdocument そして、 Xelement linqと組み合わせるが、私はこれを行う方法を理解することはできません。

回答:

回答№1は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

回答№2の場合は1

私は幸運を持ってhtmlを操作しました。 HTMLアジリティパック。あなたはナゲットで見つけることもできます。

使用している潜在的な問題 Xdocument そして Xelement htmlは必ずしも一般的にxmlであるとは限りません。