这是我的xml(略有缩短):
<document stored_search_id="11826309" id_site="184569" id_article="86428" hidden="false" position="1" equalgroup="3597146365">
<unix_timestamp>1548924770</unix_timestamp>
<header matches="false">
<text>Mobilstrul för Tele2 - problem ringa 112</text>
</header>
<short_header matches="false" length="251" removed="0">
<text>Mobilstrul för Tele2 - problem ringa 112</text>
</short_header>
<summary matches="false">
<text> Samhälle Kunder i hela landet har rapporterat problem med mobiltelefoni med operatörerna Tele2 och Comviq. Användarna har dålig eller ingen täckning och varken samtal eller internet i mobilen fungerar.</text>
</summary>
<short_summary matches="false" length="957" removed="94">
<text> Samhälle Kunder i hela landet har rapporterat problem med mobiltelefoni med operatörerna Tele2 och Comviq. Användarna har dålig eller ingen täckning och varken samtal eller internet i</text>
</short_summary>
<body matches="false">
<p>
<text>Enligt Joel Ibson, kommunikationsansvarig på Tele2 började problemen vid tretiden på natten.</text>
</p>
<text> </text>
<p>
<text>Det var en omfattande, rikstäckande störning. Den blev snabbt bättre, men det finns fortfarande problem, framför allt i Göteborgsområdet.</text>
</p>
</body>
</document>
这是我想将其解析为的对象:
[XmlRoot(ElementName = "document")]
public class Document
{
[XmlElement(ElementName = "unix_timestamp")]
public long UnixTimestamp { get; set; }
[XmlElement(ElementName = "header")]
public Header Header { get; set; }
[XmlElement(ElementName = "short_header")]
public ShortHeader ShortHeader { get; set; }
[XmlElement(ElementName = "summary")]
public Summary Summary { get; set; }
[XmlElement(ElementName = "short_summary")]
public ShortSummary ShortSummary { get; set; }
[XmlElement(ElementName = "body")]
public string Body { get; set; }
}
您可以看到我的身体是字符串类型,但在xml中是一些html。
我从文件中发布xml:
var contents = File.ReadAllText(file);
var httpContent = new StringContent(contents, Encoding.UTF8, "application/xml");
var resoponse = await httpClient.PostAsync(uri, httpContent);
File.Move(file, file.Replace(folderPath, $@"{folderPath}\Done"));
到我的api方法:
[AllowAnonymous]
[HttpPost]
[Route("")]
public async Task SearchResult([FromBody] SearchResultDataContract searchResult)
{
但是每当我将我的身体作为SearchResultDataContract对象的一部分时,它就无法解析xml,因此它将变为null。
所以我想它正在尝试将Body解析为xml而不是字符串/ html,然后如果失败。所以我的问题是,如何将正文html解析为字符串?
答案 0 :(得分:0)
您可以使用HttpUtility.HtmlEncode()对字符串进行编码,并通过HttpUtility.htmlDecode()将其返回给html
string htmlString = System.Web.HttpUtility.HtmlEncode("<p>Some text</p>");
htmlString = System.Web.HttpUtility.HtmlDecode(htmlString);