htmlagilitypack을 사용하여 html에 요소 추가

c# html html-agility-pack

문제

특정 태그 다음에 다른 태그를 삽입하고 태그를 제거하려면 어떻게해야합니까?

나는이 HTML을 가지고있다.

<p class="cs40314EBF"><span class="cs1B16EEB5">This is an ordinary text.</span></p>

이것이 가능한 출력입니다.

<p class="cs40314EBF"><b>This is an ordinary text.</b></p>

이건 내 코드 야.

HtmlDocument doc = new HtmlDocument();
                doc.Load(htmlLocation);
foreach (var item in doc.DocumentNode.Descendants())
{

   if (item.Name == "span")
   {
      HtmlNode div = doc.CreateElement("b");
      //what do i need to do here?
    }
}

나는 연구를하고 이것을 발견했다.

http://www.nudoq.org/#!/Packages/HtmlAgilityPack/HtmlAgilityPack/HtmlNode/M/InsertBefore

그러나 나는 그것을 작동하게 할 수 없다.

나는 사용할 수 없다.

if (item.Name == "span")
   {

      item.Name = "newtag";
   }

왜냐하면 나는 수업의 가치가 필요하기 때문이다. 어떤 태그를 사용할 지 결정하는

수락 된 답변

아래 코드를 확인한 후 InnerHtml 을 설정하고 save 메소드 doc.Save(yourfilepath) 호출하여 Html 문서를 저장해야합니다.

if (item.Name == "span")
{
  HtmlNode div = doc.CreateElement("b");
  div.InnerHtml = "Hello world";
  item.AppendChild(div);
  doc.Save(yourfilepath);
}

인기 답변

이거해볼 수 있니?

var doc1 = new HtmlAgilityPack.HtmlDocument();
    doc1.LoadHtml("<p class=\"cs40314EBF\"><span class=\"cs1B16EEB5\">This is an ordinary text.</span></p>");

    foreach (var item in doc1.DocumentNode.Descendants())
    {
        if (item.Name == "span")
        {
            HtmlNode b = doc.CreateElement("b");
            b.InnerHtml = item.InnerText;
            item.ParentNode.AppendChild(b);
            item.Remove();
        }
    }


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