HtmlAgilityPack은 텍스트에서 노드를 만듭니다.

html html-agility-pack replace

문제

내가 이걸 가지고 있다고 가정 해보자.

<div>
    <p>Bla bla bla specialword bla bla bla</p>
    <p>Bla bla bla bla bla specialword</p>
</div>

html의 specialword 라는 단어를 노드로 바꾸고 싶습니다 (예 : <b>specialword</b> . 이것은 문자열 교체를 사용하여 쉽지만 HTML 민첩성 팩 기능을 사용하고 싶습니다.

감사.

인기 답변

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Web;
using System.IO;
using HtmlAgilityPack;

namespace savepage
{
class Program
{

    static void Main(string[] args)
    {
        //...
       // using (WebClient client = new WebClient()) // WebClient class inherits IDisposable
       // {
        string[] nametag = { "//img", "//div", "//p", "//li", "//pre", "//span", "//ul" };
        Console.WriteLine("Enter address site:"); 
        HtmlDocument doc = new HtmlWeb().Load(Console.ReadLine()); // get address site
       // Console.WriteLine("Enter Tag:"); 

            // all <td> tags in the document
        Console.WriteLine("0=img ,1=div,2=p,3=li,4=pre,5=span,6=ul");
        string name = nametag[int.Parse(Console.ReadLine()) ]; //get list array
        Console.WriteLine(name);
        //  foreach (HtmlNode span in doc.DocumentNode.SelectNodes("//span"))

        using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\WriteLines2.txt"))
        {

            foreach (HtmlNode tag in doc.DocumentNode.SelectNodes(name))
            {
                //  HtmlAttribute src = img.Attributes[@"src"];
                // Console.WriteLine(img.InnerText);
                Console.WriteLine(tag.InnerText);
                file.WriteLine(tag.InnerText);
                //doc.Save(@"c:\majid.txt");
            }
        }

            Console.ReadKey();


      //  }
    }
}

}




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.