请我尝试将我从Web服务获得的结果转换为字符串并将其转换为对象。
这是我从我的服务中获得的字符串:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AccountStatementResponse xmlns="http://formalityzues.com/">
<AccountStatementResult><![CDATA[<?xml version="1.0" encoding="UTF-8" ?><ViewStatementResponse><TransactionItems><RefNumber>2</RefNumber><TransactionDate>31/05/2017</TransactionDate><ValueDate>31/05/2017</ValueDate><Amount>400</Amount><Narration>CHIEF ATTENDANT</Narration><TransactionType>CR</TransactionType><BalanceAfterTransaction>57003602.16</BalanceAfterTransaction></TransactionItems><TransactionItems><RefNumber>3</RefNumber><TransactionDate>31/05/2017</TransactionDate><ValueDate>31/05/2017</ValueDate><Amount>3800</Amount><Narration>HEAD QUATERS</Narration><TransactionType>CR</TransactionType><BalanceAfterTransaction>57007402.16</BalanceAfterTransaction></TransactionItems></ViewStatementResponse>]]></AccountStatementResult>
</AccountStatementResponse>
</soap:Body>
</soap:Envelope>
请问我该怎么做?
[XmlRoot("ViewStatementResponse")]
public class Model
{
[XmlElement("OpeningBalance")]
public string OpeningBalance { get; set; }
[XmlElement("ClosingBalance")]
public string ClosingBalance { get; set; }
[XmlElement("TransactionItems")]
public List<TransactionDetails> TransactionItems { get; set; }
}
public class TransactionDetails
{
[XmlElement("RefNumber")]
public string RefNumber { get; set; }
[XmlElement("TransactionDate")]
public string TransactionDate { get; set; }
[XmlElement("ValueDate")]
public string ValueDate { get; set; }
[XmlElement("Amount")]
public string Amount { get; set; }
[XmlElement("Narration")]
public string Narration { get; set; }
[XmlElement("TransactionType")]
public string TransactionType { get; set; }
[XmlElement("BalanceAfterTransaction")]
public string BalanceAfterTransaction { get; set; }
}
我正在使用它,但它没有返回错误。 我无法做到。我是xml.please help
的新手答案 0 :(得分:2)
作为初学者,以下内容确实可以读取问题中给出的XML:
var soap = XDocument.Parse(response); // response is the XML as given
var data = soap.Descendants("{http://formalityzues.com/}AccountStatementResult").First();
var reader = new StringReader(data.Value);
var serializer = new XmlSerializer(typeof(Model));
var model = serializer.Deserialize(reader) as Model;
有关工作示例,请参阅以下小提琴:https://dotnetfiddle.net/fvYYqD