私は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は1System.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であるとは限りません。