ノードのグルーピング
VBによるnodeのグルーピングがしたいのですが、初心者故行き詰っています.ご教示をお願いいたします.
[入力ファイル]
次のような変則的なHTMLです.bodyの下位は要素で構成されているのではなく<BR>¶
(¶は改行コード)を単位に区切られています.
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<U>【書類名】 手続補正書</U><BR>
<SUP>【提出日】</SUP> 平成20年1月21日<BR>
<SUB>【あて先】</SUB> 特許庁長官 殿<BR>
<FONT SIZE="6">【事件の表示】</FONT><BR>
<FONT SIZE="5"> 【<U>出願番号</U>】 <?pi 処理命令 ?><!--コメント-->特願<SUP>2017</SUP>-<SUB>506720</SUB></FONT><BR>
【補正をする者】<BR>
...
</BODY>
</HTML>
このbody
タグの下位ノードを、終末の改行でグルーピングしたいのです.
[作成したプログラム]
今できているコードは以下で、このあとbody
配下のnodes
をどうグルーピングしたらよいかわからなくなっています.
Dim streamReader As StreamReader = New StreamReader("D:\My_Documents\XML2019\JPO-HTML\testdata\F58737H1-mod.html", Encoding.GetEncoding("Shift_JIS"))
Dim SgmlReader As Sgml.SgmlReader = New Sgml.SgmlReader()
SgmlReader.DocType = "HTML"
SgmlReader.WhitespaceHandling = Xml.WhitespaceHandling.All
SgmlReader.CaseFolding = Sgml.CaseFolding.ToUpper
SgmlReader.InputStream = streamReader
Dim doc As XDocument = XDocument.Load(SgmlReader)
Dim body As XElement = doc.Element("HTML").Element("BODY")
Dim nodes As IEnumerable(Of XNode) = body.Nodes
このようなグルーピングは「自分の前の改行の個数を取得する関数」を作って、それをLINQ + XMLのGroupByに組み込むので良いと思うのですが、その肝心な点がわかりません.
以上 よろしくお願いいたします