C#中实体集合和实体转换成相应的string、XDocument、XElement
C#中实体集合和实体转换成相应的string、XDocument、XElement
public class SimpleXmlConverter
{
public static string ToXml<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return string.Empty;
} StringBuilder builder = new StringBuilder();
builder.AppendLine(XmlResource.XmlHeader); XElement element = ToXElement<T>(entities, rootName);
builder.Append(element.ToString()); return builder.ToString();
} public static XmlDocument ToXmlDocument<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(ToXml<T>(entities, rootName)); return xmlDocument;
} public static XDocument ToXDocument<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} return XDocument.Parse(ToXml<T>(entities, rootName));
} public static XElement ToXElement<T>(IList<T> entities, string rootName = "") where T : new()
{
if (entities == null || entities.Count == )
{
return null;
} if (string.IsNullOrWhiteSpace(rootName))
{
rootName = typeof(T).Name + XmlResource.XmlRootNameSuffix;
} XElement element = new XElement(rootName); foreach (T entity in entities)
{
element.Add(ToXElement<T>(entity));
} return element;
} public static string ToXml<T>(T entity) where T : new()
{
if (entity == null)
{
return string.Empty;
} XElement element = ToXElement<T>(entity); return element.ToString();
} public static XElement ToXElement<T>(T entity) where T : new()
{
if (entity == null)
{
return null;
} XElement element = new XElement(typeof(T).Name);
PropertyInfo[] properties = typeof(T).GetProperties();
XElement innerElement = null;
object propertyValue = null; foreach (PropertyInfo property in properties)
{
propertyValue = property.GetValue(entity, null);
innerElement = new XElement(property.Name, propertyValue);
element.Add(innerElement);
} return element;
} public static XElement ToXElement(Type type)
{
if (type == null)
{
return null;
} XElement element = new XElement(type.Name);
PropertyInfo[] properties = type.GetProperties();
XElement innerElement = null; foreach (PropertyInfo property in properties)
{
innerElement = new XElement(property.Name, null);
element.Add(innerElement);
} return element;
}
}
C#中实体集合和实体转换成相应的string、XDocument、XElement的更多相关文章
- C# 实体集合和实体转换成相应的string、XDocument、XElement、XDocument
https://msdn.microsoft.com/zh-cn/library/system.xml.linq.xelement(v=vs.110).aspx XElement.Parse 方法 ( ...
- 将泛类型集合List类转换成DataTable
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)
原文:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100) 对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是 ...
- C#将image中的显示的图片转换成二进制
原文:C#将image中的显示的图片转换成二进制 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才 ...
- 字符串A转换到字符串B,只能一次一次转换,每次转换只能把字符串A中的一个字符全部转换成另一个字符,是否能够转换成功
public class DemoTest { public static void main(String[] args) { System.)); } /** * 有一个字符串A 有一个字符串B ...
- Java中Office(word/ppt/excel)转换成HTML实现
运行条件:JDK + jacob.jar + jacob.dll 1) 把jacob.dll在 JAVA_HOME\bin\ 和 JAVA_HOME\jre\bin\ 以及C:\WINDOWS\sys ...
- [转]C#将image中的显示的图片转换成二进制
本文转自:http://www.cnblogs.com/shuang121/archive/2012/07/09/2582654.html .将Image图像文件存入到数据库中 我们知道数据库里的Im ...
- 转:ArcGIS中利用ArcMap将地理坐标系转换成投影坐标系(从WKID=4326到WKID=102100)
对于非地理专业的开发人员,对与这些生涩的概念,我们不一定都要了解,但是我们要理解,凡是以经纬度为单位的都是地理坐标系,因为它归根结底是一个椭球体,只不过各个国家为了反映该国家所在区域地球的真实形状,而 ...
- python3.6 + selenium2.53.1 查询数据库并将返回的内容中每一行的内容转换成class对象
环境: win10 python3.6 selenium2.53.1 准备工作:先安装pymysql python2.x链接数据库使用MySQLdb,而python3.x链接数据库使用pymysql ...
随机推荐
- metasploit 读书笔记-EXPLOITATION
一、渗透攻击基础 1.常用命令 show exploits 显示Meta框架中所有可用的渗透攻击模块。 show options 显示模块所需要的各种参数 back 返回Meta的上一个状态 sear ...
- Linux 新建用户、用户组,给用户分配权限
注:内容来自网络 Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对 ...
- [SinGuLaRiTy] 动态规划题目复习
[SinGuLaRiTy-1026] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. [UVA 1025] A Spy in the Metr ...
- 关于jquery.extend()的坑:我的数组变成相同元素了?
首先呢我有一个数组,存放了多个json对象.这些json对象的属性有缺失,我设置了一个对象模板来存放默认值 先来看一段代码 var source = [ { name: 'dapianzi', bor ...
- loj#6485. LJJ 学二项式定理(单位根反演)
题面 传送门 题解 首先你要知道一个叫做单位根反演的东西 \[{1\over k}\sum_{i=0}^{k-1}\omega^{in}_k=[k|n]\] 直接用等比数列求和就可以证明了 而且在模\ ...
- web安全-xss攻击
web安全问题 xss攻击 1.html标签 html内容的转义 escapeHtml str = str.replace(/&/g,'&'); str = str.replac ...
- 用SQL玩转数据挖掘之MADlib(一)——安装
一.MADlib简介 MADlib是Pivotal公司与伯克利大学合作的一个开源机器学习库,提供了精确的数据并行实现.统计和机器学习方法对结构化和非结构化数据进行分析,主要目的是扩展数据库的分析能力, ...
- Build SSH for Development on Windows Subsystem for Linux
It seems that Windows Subsystem for Linux (WSL) is getting much more mature than the time when it fi ...
- P2498 [SDOI2012]拯救小云公主
\(\color{#0066ff}{ 题目描述 }\) 英雄又即将踏上拯救公主的道路-- 这次的拯救目标是--爱和正义的小云公主. 英雄来到boss的洞穴门口,他一下子就懵了,因为面前不只是一只bos ...
- POJ1511 Invitation Cards SPFA算法裸题变形
原题目:http://poj.org/problem?id=1511 给出一个有向图,求出这个图从1到所有点的最短路径和所有点到1的最短路径的和. 这题数据量有点大,数据范围也大,所以用SPFA+邻接 ...