トップ  >  サンプルソース  >  HTML解析(C#/VB.NET)

HTML解析(C#/VB.NET)

2010年12月22日

WEBページ(ファイル)で使用されているHTMLを解析しタグの情報を取得するサンプル(ソース/コード)です。

実際のWEBページで記述されているHTMLには色々なパターンがあるので、このままでは不十分だと思いますが、WEB関係のプログラムを開発する時の参考になればと思います。

WEB関係のツールやサンプルはこちら「WEB関係」です。

' --------------------------------------------------------
' HTMLを解析するサンプル(VB.NET/VS2005)
Private Sub Button1_Click_1( _
    ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click

    Dim ht As String = ""
    ht = ht & "<html>"
    ht = ht & "<head>"
    ht = ht & "<title>タイトル</title>"
    ht = ht & "</head>"
    ht = ht & "<body>"
    ht = ht & "<a href=""z.html"">リンク</a>"
    ht = ht & "</body>"
    ht = ht & "</html>"

    Dim p1 As Integer = 0
    Dim p2 As Integer = 0
    Dim ps As Integer = 0
    Dim ul As String = ""
    Do
        p1 = ht.IndexOf("<", ps)
        If p1 >= 0 Then
            p2 = ht.IndexOf(">", p1)
            If p2 >= 0 Then
                Dim tg As String
                tg = ht.Substring(p1 + 1, p2 - p1 - 1)
                tg = tg.Replace(" ", "").ToLower

                If tg.IndexOf("title") = 0 Then
                ElseIf tg.IndexOf("/title") = 0 Then
                    System.Diagnostics.Trace.WriteLine( _
                        ht.Substring(ps, p1 - ps))
                ElseIf tg.IndexOf("a") = 0 Then
                    Dim t1 As Integer
                    Dim t2 As Integer
                    t1 = tg.IndexOf("href=""")
                    If t1 >= 0 Then
                        t1 = t1 + 6
                        t2 = tg.IndexOf("""", t1)
                        If t2 >= 0 Then
                            ul = tg.Substring(t1, t2 - t1)
                        End If
                    End If
                ElseIf tg.IndexOf("/a") = 0 Then
                    System.Diagnostics.Trace.WriteLine( _
                        ht.Substring(ps, p1 - ps) & _
                        "," & ul)
                End If
                ps = p2 + 1
            Else
                Exit Do
            End If
        Else
            Exit Do
        End If
    Loop
End Sub
' --------------------------------------------------------

// -------------------------------------------------------
// HTMLを解析するサンプル(C#.NET/VS2005)
private void button1_Click(object sender, EventArgs e)
{
    String ht = "";
    ht = ht + "<html>";
    ht = ht + "<head>";
    ht = ht + "<title>タイトル</title>";
    ht = ht + "</head>";
    ht = ht + "<body>";
    ht = ht + "<a href=\"z.html\">リンク</a>";
    ht = ht + "</body>";
    ht = ht + "</html>";

    int p1 = 0;
    int p2 = 0;
    int ps = 0;
    String ul = "";
    while (true)
    {
        p1 = ht.IndexOf("<", ps);
        if (p1 >= 0)
        {
            p2 = ht.IndexOf(">", p1);
            if (p2 >= 0)
            {
                String tg;
                tg = ht.Substring(p1 + 1, p2 - p1 - 1);
                tg = tg.Replace(" ", "").ToLower();

                if (tg.IndexOf("title") == 0)
                {
                }
                else if (tg.IndexOf("/title") == 0)
                {
                    System.Diagnostics.Trace.WriteLine(
                        ht.Substring(ps, p1 - ps));
                }
                else if (tg.IndexOf("a") == 0)
                {
                    int t1;
                    int t2;
                    t1 = tg.IndexOf("href=\"");
                    if (t1 >= 0)
                    {
                        t1 = t1 + 6;
                        t2 = tg.IndexOf("\"", t1);
                        if (t2 >= 0)
                        {
                            ul = tg.Substring(
                                t1, t2 - t1);
                        }
                    }
                }
                else if (tg.IndexOf("/a") == 0)
                {
                    System.Diagnostics.Trace.WriteLine(
                        ht.Substring(ps, p1 - ps) +
                        "," + ul);
                }
                ps = p2 + 1;
            }
            else
            {
                break;
            }
        }
        else
        {
            break;
        }
    }
}
// -------------------------------------------------------
スポンサーサイト

大塚愛 2010 紅白(休養中) | トップページへ戻る | 「どうしても苦手なもの」 お風呂だワン

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る