아래 코드는 제 코드입니다. 유형 Element
대신 텍스트 형식의 노드의 노드에 있어야합니다XmlSerializer를 사용하여 xHtml 텍스트를 소멸시키는 방법은 무엇입니까?
xmlSerializer.Deserialize(child.CreateReader());
XmlReader
:이 코드를 실행하면
[XmlRootAttribute("book")]
public class BookHtml
{
[XmlElement("book-id")]
public string BookId { get; set; }
[XmlElement("book-xhtml")]
public BookHtmlMetadata BookXhtml { get; set; }
public String ToHtml()
{
return this.BookXhtml.Xhtml.ToString();
}
}
public class BookHtmlMetadata
{
[XmlElement("xhtml")]
public XElement Xhtml { get; set; }
}
public class Program
{
private static string GetXhtmlWithNoTags()
{
return "<content>" +
"<book>" +
"<book-id label=\"Book Id\">2</book-id>" +
"<book-xhtml label=\"Book Xhtml\">" +
"<xhtml>" +
"Copyright © 2010 . All rights reserved.<a href=\"/Home/Book.asp\">Best book ever</a>. " +
"</xhtml>" +
"</book-xhtml>" +
"</book>" +
"</content>";
}
static void Main(string[] args)
{
string xml = GetXhtmlWithNoTags();
XElement contentXml = XElement.Parse(xml);
var xmlSerializer = new XmlSerializer(typeof(BookHtml));
var list = new List<BookHtml>();
foreach (var child in contentXml.Elements())
{
list.Add((BookHtml)xmlSerializer.Deserialize(child.CreateReader()));
}
string contentToRender = list.Single().BookXhtml.Xhtml;
}
나는에 오류가 발생합니다.
<xhtml/>
태그 내의 콘텐츠를 <a href="/Home/Book.asp">
과 같은 html 태그를 잃지 않고 어떻게 역 직렬화 할 수 있습니까? xhtml을 사용하고 브라우저에서 html 태그/링크를 렌더링 할 수 있어야합니다.
모든 아이디어, suggessions 크게 감사하겠습니다.