HtmlGenericControl을 HtmlNode에 추가하는 방법?

c# html html-agility-pack htmlgenericcontrol

문제

내가 갇혔어요,이 일을 성취하는 것이 매우 간단해야하지만 어떻게 볼 수는 없습니다.

나는이 코드를 가지고 :

 var divEl = doc.DocumentNode.SelectSingleNode("//div[@id='" + field.Id + "']");

 var newdiv = new HtmlGenericControl("div");
 newdiv.Attributes.Add("id", label.ID);
 newdiv.Attributes.Add("text", label.Text);
 newdiv.Attributes.Add("class", label.CssClass);

그리고 나는 이렇게 할 필요가있다 :

    divEl.AppendChild(newdiv); //not working its expecting a HtmlNode, not a HtmlGenericControl

어떻게 변환 할 수 있습니까?

어떤 응답을 미리 주셔서 감사합니다, chapas

수락 된 답변

아래 코드를 사용해보십시오. 몇 가지 사항을 변경해야합니다. innerHTML 컨트롤이 잘 형성되어 있으며 xmlNode의 innerXML로 사용할 수 있습니다.

XmlDocument doc = new XmlDocument();
//Load your xml here TODO
var divEl = doc.DocumentElement.SelectSingleNode("//div[@id='test']"); //Change your xpath here TODO
var newdiv = new HtmlGenericControl("div"); 
newdiv.Attributes.Add("id", "id"); 
newdiv.Attributes.Add("text", "text"); 
newdiv.Attributes.Add("class", "class");

XmlNode newNode = doc.CreateNode("NodeType", "NodeName", "URI/if/any"); //update your variables here
newNode.InnerXml = newdiv.InnerHtml;
divEl.AppendChild(newNode);

희망이 도움이


인기 답변

대신 HAP의 API를 사용하여 노드를 만들지 않는 이유는 무엇입니까? 그것은 매우 비슷하게 작동해야합니다.

var newDiv = HtmlNode.CreateNode("<div/>");
newDiv.Attributes.Add("id", label.ID);
newDiv.Attributes.Add("text", label.Text);
newDiv.Attributes.Add("class", label.CssClass);

divEl.AppendChild(newDiv);

HtmlGenericControl 인스턴스 (AFAIK)의 외부 HTML을 가져 오는 쉬운 방법은 없습니다. 가지고 있었다면 HTML을 HtmlNode.CreateNode() 메서드로 전달하여 만들 수 있습니다. 그러나 나는 그 일을하려고하지 말 것을 강력히 제안한다.




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