[英]XML CDATA reading in C#
我有以下來自外部服務的 XML 結構。 它包含 CDATA,而它又包含 xml。 我想將 CDATA 內容 deserailize 到 C# 對象。 有人可以幫我嗎? 我看了很多文章都找不到合適的一篇。
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<Response xmlns=""><![CDATA[<result><Item1>Some data</Item1><Item2>Some data</Item2><Item3>Some data</Item3></result>]]></Response>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
CDATA里面的XML下面需要反序列化。
<result><Item1>Some data</Item1><Item2>Some data</Item2><Item3>Some data</Item3></result>
[XmlRoot("result")]
public class Result
{
public string Item1 { get; set; }
public string Item2 { get; set; }
public string Item3 { get; set; }
}
用:
Result result;
using (var xmlReader = XmlReader.Create(inputStream))
{
xmlReader.ReadToFollowing("Response");
xmlReader.Read(); // read CDATA tag
using (var stringReader = new StringReader(xmlReader.Value))
{
var xs = new XmlSerializer(typeof(Result));
result = (Result)xs.Deserialize(stringReader);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.