Saya menggunakan Agility Helper HTML dan sejauh ini saya memiliki kode seperti itu:

        var linkWeb = new HtmlWeb();
        var linkDoc = web.Load(link);
        foreach (HtmlNode l in linkDoc.DocumentNode.SelectNodes("//p"))
        {
            Console.WriteLine("text #"+ i++= + l.InnerText);
        }

Jadi ini membaca teks paragraf web dengan baik kecuali, saya ingin membaca semua teks paragraf yang digabungkan hingga jangkar tag lain tercapai atau jika Anda dapat memikirkan metode yang lebih baik.

<p>
<a href="1.shtml#Top" target="_top">PART 1</a>
CONTENT1;
CONTENT2;
</p>
<p>CONTENT3.</p>

<p>
<a href="2.shtml#Top" target="_top">PART 2</a>
CONTENT1&nbsp;
CONTENT2&nbsp;
CONTENT3&nbsp;
CONTENT4
</p>
<p>CONTENT5.</p>
<p>CONTENT6.</p>
<p>CONTENT8.</p>

<p>
<a href="3.shtml#Top" target="_top">PART 3</a>
CONTENT1&nbsp;
CONTENT2&nbsp;
CONTENT3&nbsp;
CONTENT4.
</p>

Jadi sekarang dengan kode yang saya miliki, ia membaca teks P setiap paragraf secara terpisah.

TEKS #1 adalah

KONTEN1 KONTEN2

TEKS #2 adalah CONTENT3.

Saya ingin ini membaca TEKS #1 adalah CONTENT1 CONTENT2 CONTENT3.

Ini dinamis dan # paragraf berubah.

Semacam pemeriksaan untuk memastikan sebelum memukul jangkar itu membaca semua paragraf / InnerTexts dan tahu itu seharusnya berada di Teks # yang sama.

0
NoviceDeveloper 11 Desember 2019, 20:17

1 menjawab

Jawaban Terbaik

Anda dapat menerapkan ini seperti:

    foreach (HtmlNode l in linkDoc.DocumentNode.SelectNodes("//p"))
    {
        if (l.ChildNodes.Any(node => node.Name == "a"))
        {
            Console.WriteLine();
            Console.Write("text #" + i++);
        }
        Console.Write(l.InnerText + " ");
    }
0
Ivan R. 12 Desember 2019, 18:00