Как десериализовать ниже xml возврат к переменной в с #?
<?xmlversion = "1.0"encoding = "UTF-8"?>
<alipay>
<is_success>T</is_success>
<request>
<param name = "_input_charset">UTF-8</param>
<param name = "currency">USD</param>
<param name = "buyer_identity_code">2013112012345678</param>
<param name = "identity_code_type">qrcode</param>
<param name = "mcc">4021</param>
<param name = "extend_info">{"licence":"123",name=”LG”}</param>
<param name = "partner_trans_id">2010121000000002</param>
<param name = "partner">2088102012343978</param>
<param name = "password">SJV88po0XvIptqWGM4rxP5EQ</param>
<param name = "memo">shopping</param>
<param name = "service">alipay.acquire.overseas.pay</param>
<param name = "sign">22904adafb1806178b410d2d5c9c02a3</param>
<param name = "sign_type">MD5</param>
<param name=“trans_name”>Belkin wrist type</param>
<param name = "trans_amount">39.25</param>
<param name = "trans_create_time">20131120153059</param>
</request>
<response>
<alipay>
<alipay_trans_id>2011091703338463</alipay_trans_id>
<partner_trans_id>201311221000000002</partner_trans_id>
<alipay_buyer_login_id>cao***@126.com</alipay_buyer_login_id>
<alipay_buyer_user_id>2088102130896433</alipay_buyer_user_id>
<alipay_pay_time>20131120155823</alipay_pay_time>
<exchange_rate>6.0939</exchange_rate>
<trans_amount>39.25</trans_amount>
<trans_amount_CNY>239.19</trans_amount_CNY>
<result_code>SUCCESS</result_code>
</alipay>
</response>
<sign>6fb8a322f15cfd0fcfe65301b10f6994</sign>
<sign_type>MD5</sign_type>
</alipay>
Возможный дубликат Как десериализовать XML-документ
Вы можете получить модель данных xml из xmltocsharp.azurewebsites.net, а затем с помощью XmlSerializer преобразовать ее в объект.
@AndyRefuerzo Другой: <param name = "_ input_charset">
По-прежнему XML-документ.





Обычно рекомендуется проверить официальная документация.
Если вы получите класс для этого xml, вы можете использовать этот инструмент или использовать функциональность этой визуальной студии
Также этот xml не будет анализировать, вы используете странные апострофы в строке trans_name
Используйте xml linq:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;
namespace ConsoleApplication62
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string xml = File.ReadAllText(FILENAME);
XDocument doc = XDocument.Parse(xml);
var results = doc.Descendants("response").FirstOrDefault().Elements("alipay").Select(x => new
{
alipay_trans_id = (string)x.Element("alipay_trans_id"),
partner_trans_id = (string)x.Element("partner_trans_id"),
alipay_buyer_login_id = (string)x.Element("alipay_buyer_login_id"),
alipay_buyer_user_id = (string)x.Element("alipay_buyer_user_id"),
alipay_pay_time = (string)x.Element("alipay_pay_time"),
exchange_rate = (decimal)x.Element("exchange_rate"),
trans_amount = (decimal)x.Element("trans_amount"),
trans_amopunt_CNY = (decimal)x.Element("alipay_trans_id"),
result_code = (string)x.Element("result_code")
}).FirstOrDefault();
}
}
}
(1) Скопируйте XML в буфер обмена (исключая первую строку
<?xmlversion = "1.0"encoding = "UTF-8"?>), (2) В Visual Studio выберитеEdit | Paste Special | Paste XML as Classes. (3) Прибыль!