저는 XElement 객체를 사용하여 ASP.NET 페이지의 코드 숨김에 HTML을 구현하고 있습니다.HTML 내용을 이스케이프하는 System.Xml.Linq.XElement를 피하는 방법?
I 수도 있고 나는 다음과 같은 방식으로, 진행하면서이 XElement를 일부 XAttributes를 추가 할 수 없습니다 : 나는 에 HTML을 포함 myDiv 일부 콘텐츠를 추가 할 경우, 지금
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
);
의 내 상황에 XElement가 자동으로 이스케이프 처리하여 바람직하지 않습니다.
내가 가진 그래서 경우 :
var elmnt = new XElement("div",
new XAttribute("id", "myDiv"),
"<span id='content'>hello world</span>"
);
그리고 나는 다음과 같은 코드를 사용하여 자리 표시 자 객체로이 렌더링 : 페이지가로드, 소스 안에 그 내부 내용을 알 때
myPlaceholder.Controls.Add(new System.Web.UI.WebControls.Literal { Text = elmnt.CreateNavigator().OuterXml });
을 elmnt은 이스케이프 처리되었으며 페이지 소스에 다음 형식을 사용합니다.
여기서 컴파일하는 XML이 유효한 HTML이고 내부 내용이 유효한 HTML이기 때문에 XElement 부모 개체에 이 아닌 것으로 말할 수 있습니까? 내부 콘텐츠를 이스케이프 처리합니까? 어떻게 네이티브 포맷으로 남겨 둘 수 있습니까? 당신이 그것에 추가 할 때 다음 XML과 HTML을 치료하는 경우
지정된 HtmlTextWriter 클래스는, MustInherit' '로 표시됩니다. 큰 질문이지만, 위 예제를 사용하여 HtmlTextWriter 객체로 변환하는 간단한 예제를 제공 할 수 있습니까? – awj
XElements를 받아들이는 맞춤식 캐시를 사용하고 있기 때문에 XElement 클래스를 사용하고 싶지만 HtmlTextWriter의 인스턴스를 받아 들일지 확실하지 않습니다. 또한 내부 HTML을 단순히 포함하기 위해 이것을 사용하지 않고 전체 XElement를 HtmlTextWriter로 바꾸라고 제안 하시겠습니까? – awj
@awj 사용법에 대한 최신 게시물을 참조하십시오. 어쨌든,이 클래스는 public이고 이미 구현되어 있습니다. html을 빌드 할 때 HtmlTextWriter는 XElement보다 훨씬 간단하고 강력합니다. XElement가 더 일반적입니다. – archil