XML 字符串解析
微信红包发送完成后返回xml字符串,解析过程如下:
1、调用解析:
public ActionResult GetEntityFromXml()
{
string str = @"<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[帐号余额不足,请到商户平台充值后再重试]]></return_msg>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[NOTENOUGH]]></err_code>
<err_code_des><![CDATA[帐号余额不足,请到商户平台充值后再重试]]></err_code_des>
<mch_billno><![CDATA[20170114130807a1234567]]></mch_billno>
<mch_id><![CDATA[**********]]></mch_id>
<wxappid><![CDATA[wx****************]]></wxappid>
<re_openid><![CDATA[oPg_***********************]]></re_openid>
<total_amount>100</total_amount>
</xml>";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(str);
var rmodel = new WeiXinRedPackgeResultModel();
Html_Tools.Class1.GetEntityFromXml<WeiXinRedPackgeResultModel>(rmodel, doc); return Json(rmodel);
}
2、解析类(可完善通用):
public static class Class1
{
public static void GetEntityFromXml<T>(this T entity, System.Xml.XmlDocument doc)
{
Dictionary<string, string> Dic = new Dictionary<string, string>();
System.Xml.XmlNodeList nodelist = doc.DocumentElement.ChildNodes;
if (nodelist.Count > )
{
Type t = entity.GetType();
foreach (System.Xml.XmlElement el in nodelist)//读元素值
{
System.Reflection.PropertyInfo proInfo = t.GetProperty(el.Name);//访问Obj的类型的属性Value的属性信息(propertyInfo)
if (proInfo != null)
{
string str2 = proInfo.PropertyType.Name;
if (str2 == null)
{
goto Label_018A;
}
if (!(str2 == "DateTime"))
{
if (str2 == "Boolean")
{
goto Label_00E9;
}
if (str2 == "Int64")
{
goto Label_0134;
}
goto Label_018A;
}
proInfo.SetValue(entity, new DateTime(long.Parse(el.InnerText)), null);
}
continue;
Label_00E9:
proInfo.SetValue(entity, el.InnerText == "", null);
continue;
Label_0134:
proInfo.SetValue(entity, long.Parse(el.InnerText), null);
continue;
Label_018A:
proInfo.SetValue(entity, el.InnerText, null);
}
}
} }
3、返回的实体类:
public class WeiXinRedPackgeResultModel
{
#region 微信红包返回值 public string return_code { get; set; } public string return_msg { get; set; } public string result_code { get; set; } public string err_code { get; set; } public string err_code_des { get; set; }
public string mch_billno { get; set; }
public string mch_id { get; set; }
public string wxappid { get; set; }
public string re_openid { get; set; } #endregion
}
XML 字符串解析的更多相关文章
- js 将XML字符串解析成XML文档  --- attribute construct error--- 空白字符与空格问题
		
最近在做xml在线编辑器,遇到一个字符串解析成xml文档的问题,记录一下. 原始xml内容读取自xml文档 <label class="test" id="labe ...
 - XML字符串解析实体类方法
		
/// <summary> /// XML字符串解析实体类方法 /// </summary> public class StringXML { public StringXML ...
 - xml 字符串解析成通用的map
		
[quote]Stax解析技术:快速高效,根据流的形式解析xml,比dom解析技术更加快,dom解析技术是基于文档结构树的,会把整个dom文件树加载到内存进行解析[/quote] package co ...
 - XML字符串解析
		
不多说,直接上代码: import java.io.StringReader; import org.dom4j.Document; import org.dom4j.DocumentExceptio ...
 - XML字符串解析成对象的时候应注意空格
		
BomList bomList=(BomList)unmarshaller_bom.unmarshal(new StringReader(xml));xml 不能以空格开头
 - [ java 工具类] xml字符串解析成Map(DOM解析)
		
package com.tencent.jungle.wechat.util; import com.google.inject.Singleton; import org.w3c.dom.Docum ...
 - dom4j组装xml 以及解析xml
		
dom4j组装xml 以及解析xml: 1.下载dom4j的jar包,地址:https://dom4j.github.io/ 2.java代码: package test; import java.i ...
 - JS解析XML文件和XML字符串
		
JS解析XML文件 <script type='text/javascript'> loadXML = function(xmlFile){ var xmlDoc=null; //判断浏览 ...
 - tinyXml直接解析XML字符串
		
一直都用tinyxml直接LoadFile来解析XML,发现原来也可以直接解析XML字符串. XML文件: <?xml version=\"1.0\" encoding=\& ...
 
随机推荐
- MyBatis基础用法(一)
			
<select id="getErrorTimes" resultType="Integer"> SELECT ErrorTimes FROM `e ...
 - codeforces 492E. Vanya and Field(exgcd求逆元)
			
题目链接:codeforces 492e vanya and field 留个扩展gcd求逆元的板子. 设i,j为每颗苹果树的位置,因为gcd(n,dx) = 1,gcd(n,dy) = 1,所以当走 ...
 - Pythagorean Triples
			
Pythagorean Triples time limit per test 1 second memory limit per test 256 megabytes input standard ...
 - 高效PHP编程
			
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静 ...
 - JS基础知识(五)
			
内置对象 定义:JS语言自己定义的一些对象,供开发者使用. 常用内置对象: 1.Arguments对象 arguments.length 返回实参的个数 他只在正运行的函数内部使用.argument ...
 - DHCP配置部分
			
1.DHCP工作过程 dhcp discover \\客户端请求服务器器提供地址 dhcp offer \\服务器提供ip地址 dhcp request \\客户端租用ip地址 dhcp ack \\ ...
 - Amoeba详细介绍
			
Amoeba的中文意思是变型虫 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库 ...
 - [iOS]C语言技术视频-08-结构体的定义
			
下载地址: 链接: http://pan.baidu.com/s/1dlEFW 密码: 9e5u
 - JS传递到后台中文 出现乱码问题
			
js 异步传递中文字符,后台接收出现乱码问题 function showFirSelect(a){ var b = encodeURI(a); var secUrl = "<%=bas ...
 - HTML5 Canvas | w3cschool菜鸟教程
			
HTML5 Canvas <canvas> 标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形.. 在画布上(Canvas)画一个红色矩形,梯度矩形,彩色矩形,和一些彩色的文字. ...