以下は私のコードです。タイプElement
代わりのText型のノードのノード上にある必要があります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タグ/リンクをレンダリングできるはずです。
すべてのアイデアは、大歓迎です。