HTML AGILITY PACK으로 태그 내부 텍스트 변경

c# html html-agility-pack

문제

HTML 민첩성 팩을 사용하는 Im 및 일부 태그의 InnerText를 바꾸려고 시도 중입니다.

protected void GerarHtml()
{
    List<string> labels = new List<string>();

    string patch = @"C:\EmailsMKT\" + 
                              Convert.ToString(Session["ssnFileName"]) + ".html";

     DocHtml.Load(patch);

     //var titulos = DocHtml.DocumentNode.SelectNodes("//*[@class='lblmkt']");

     foreach (HtmlNode titulo in
              DocHtml.DocumentNode.SelectNodes("//*[@class='lblmkt']"))
     {
          titulo.InnerText.Replace("test", lbltitulo1.Text);
     }

     DocHtml.Save(patch);

}

html :

<.div><.label id="titulo1" class="lblmkt">teste</label.><./Div>

수락 된 답변

문자열은 변경되지 않습니다 (이에 대한 많은 문서를 찾을 수 있어야합니다).
String 클래스의 메서드는 인스턴스를 변경하지 않고 새로운 수정 된 문자열을 만듭니다.

따라서 귀하의 전화 :

titulo.InnerText.Replace("test", lbltitulo1.Text);

InnerText는 변경하지 않지만 InnerText를 원하는 문자열을 반환합니다.

또한 InnerText는 읽기 전용입니다. HtmlAgilityPack으로 InnerText를 설정 하면 Text를 사용해야한다.

대신 다음 행을 시도하십시오 (문자열 조작의 결과를 특성에 다시 지정하십시오).

titulo.Text = titulo.Text.Replace("test", lbltitulo1.Text);

인기 답변

나는 이렇게 결과를 얻을 수 있었다 :

HtmlTextNode Hnode = null;
Hnode = DocHtml.DocumentNode.SelectSingleNode("//label[@id='titulo1']//text()") as HtmlTextNode;
Hnode.Text = lbltitulo1.Text;



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