1

divC#を使用してクラスin以上のコンテンツを取得するにはどうすればよいですか?

私は次のHTMLコードを持っています:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <div id="xxx">
        <div class="in">
            <a href="/a/show/7184569" class="mm">ВАЗ 2121</a> <span class="for">за</span>
            <span class="price">2 700 $</span>
            <br />
            <span class="year">1990 г.</span><br />
            <div style="margin: 3px 0 3px 0">contentxxx</div>
        </div>
    </div>
</body>
</html>

のコンテンツを取得したいのですがdiv class="in"、結果は次のとおりです。

<div class="in">
     <a href="/a/show/7184569" class="mm">ВАЗ 2121</a> <span class="for">за</span>
     <span class="price">2 700 $</span>
     <br />
     <span class="year">1990 г.</span><br />
     <div style="margin: 3px 0 3px 0">contentxxx</div>
</div>
4

3 に答える 3

2
using HtmlAgilityPack;

static void Parse
        {


            HtmlWeb web = new HtmlWeb();
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(getHTML());

            HtmlNodeCollection nodeCol = doc.DocumentNode.SelectNodes("//div[@class=\"in\"]");

            string value = nodeCol[0].InnerHtml;
        }

        static string getHTML()
        {
            string retVal = "";

            retVal = @"<!DOCTYPE html>"
                     + "<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\">"
                    + "<head>"
                        + "<meta charset=\"utf-8\" />"
                        + "<title></title>"
                    + "</head>"
                    + "<body>"
                        + "<div id=\"xxx\">"
                            + "<div class=\"in\">"
                                + "<a href=\"/a/show/7184569\" class=\"mm\">ВАЗ 2121</a> <span class=\"for\">за</span>"
                                + "<span class=\"price\">2 700 $</span>"
                                + "<br />"
                                + "<span class=\"year\">1990 г.</span><br />"
                                + "<div style=\"margin: 3px 0 3px 0\">contentxxx</div>"

                            + "</div>"
                        + "</div>"
                    + "</body>"
                    + "</html>";

            return retVal;
        }

名前空間 HtmlAgilityPack; を追加してください。参照: http://htmlagilitypack.codeplex.com/releases/view/90925

于 2012-09-15T07:23:14.890 に答える
0

HTML Agility Packを使用して簡単に実行できます。

using HtmlAgilityPack;

...
var doc = new HtmlDocument();
doc.Load(@"C:\file.htm") //see the overloads. You can also use `LoadHtml` method.

var node = doc.DocumentNode.SelecSingleNode("//div[@class='in']");

//This is the text you are looking for...
var result = node.OuterHtml;
于 2012-09-19T03:47:20.573 に答える
-2

JQuery を使用して div のコンテンツを取得します。

<script language="text/javascript">

       var d = $('div.in').html();
</script>

in上記のコードは、クラスを持つ div のコンテンツを取得します。

于 2012-09-19T05:01:43.567 に答える