C#XML架构反序列化的HTML一部分字符串

问题描述 投票:1回答:2

我的XML看起来是这样的:

<document>
    <body>
        <p>
            <text>asdasdasdasd</text>
        </p>
        <text>  </text>
        <p>
            <text>Bl abloa blasdasdasd</text>
        </p>
    </body>     
</document>

所以我想要做的是解析body元素为字符串。

    [XmlRoot(ElementName = "document")]
    public class Document
    {      
        [XmlElement(ElementName = "body")]
        public string Body { get; set; }   
    }   

我已经试过[XMLTEXT]和不同的属性在这样[XMLTEXT(类型= typeof运算(字符串))]

我想直接做,因为在我的控制器方法的参数:

    [AllowAnonymous]
    [HttpPost]
    [Route("")]
    public async Task SearchResult([FromBody] SearchResultDataContract searchResult)
    {
        try

是SearchResultDataContract是文档对象。

但我还没有设法找到任何解决方案。

c# xml xml-serialization
2个回答
2
投票
[XmlRoot(ElementName = "document")]
public class Document
{
    [XmlElement("body")]
    public XmlElement Body { get; set; }
}

应该工作,只要我们正在谈论的XHTML,而不是HTML。你不能string直接交易,据我所知 - 编码器就不会信任你,你的XML将始终很好地形成 - 但它相信XmlElement。你总是可以补充一点,就是两者之间的衬层,如果需要的话。


0
投票

我设法利用这个创造我自己的扩展反序列化,以解决这个问题:Deserialize element value as string although it contains mixed content

© www.soinside.com 2019 - 2024. All rights reserved.