IList与Xml互相转换

文章描述:-2022年2月18日发(作者:noip)1 using System;2 using ;3 using c;4 using ;5 using ;6 using tion;7 8 namespace y9 {10 /// 11 /// 实体转Xml,Xml转实体类12 /// 13 /// 14 public class XmlHelper where T

-

IList与Xml互相转换 2022年2月18日发(作者:noip)

1 using System;

2 using ;

3 using c;

4 using ;

5 using ;

6 using tion;

7

8 namespace y

9 {

10 ///



11 /// 实体转Xml,Xml转实体类

12 ///


13 ///

14 public class XmlHelper where T : new()

15 {

16 #region 实体类转成Xml

17 ///

18 /// 对象实例转成xml

19 ///


20 /// 对象实例

21 ///

22 public static string EntityToXml(T item)

23 {

24 IList items = new List();

25 (item);

26 return EntityToXml(items);

27 }

28

29 ///

30 /// 对象实例集转成xml

31 ///


32 /// 对象实例集

33 ///

34 public static string EntityToXml(IList items)

35 {

36 //创建XmlDocument文档

37 XmlDocument doc = new XmlDocument();

38 //创建根元素

39 XmlElement root = Element(typeof(T).ame + "s");

40 //添加根元素的子元素集

41 foreach (T item in items)

42 {

43 EntityToXml(doc, root, item);

44 }

45 //向XmlDocument文档添加根元素

46 Child(root);

47

48 return ml;

49 }

50

51 private static void EntityToXml(XmlDocument doc, XmlElement root, T item)

52 {

53 //创建元素

54 XmlElement xmlItem = Element(typeof(T).ame);

55 //对象的属性集

56 tyInfo[] propertyInfo = typeof(T).GetProperties( | ce);

57

58 foreach (tyInfo pinfo in propertyInfo)

59 {

60 if (pinfo != null)

61 {

62 //对象属性名称

63 string name = ;

64 //对象属性值

65 string value = ;

66

67 if (ue(item, null) != null)

68 value = ue(item, null).ToString();//获取对象属性值

69 //设置元素的属性值

70 ribute(name,value);

71 }

72 }

73 //向根添加子元素

74 Child(xmlItem);

75 }

76

77

78 #endregion

79

80 #region Xml转成实体类

81

8

2 ///



83 /// Xml转成对象实例

84 ///


85 /// xml

86 ///

87 public static T XmlToEntity(string xml)

88 {

89 IList items= XmlToEntityList(xml);

90 if (items != null && > 0)

91 return items[0];

92 else return default(T);

93 }

94

95 ///

96 /// Xml转成对象实例集

97 ///


98 /// xml

99 ///

100 public static IList XmlToEntityList(string xml)

101 {

102 XmlDocument doc = new XmlDocument();

103 try

104 {

105 l(xml);

106 }

107 catch

108 {

109 return null;

110 }

111 if ( != 1)

112 return null;

113 if (odes[0].r() != typeof(T).r() + "s")

114 return null;

115

116 Xmlode node = odes[0];

117

118 IList items = new List();

119

120 foreach (Xmlode child in odes)

121 {

122 if (r() == typeof(T).r())

123 (XmlodeToEntity(child));

124 }

125

126 return items;

127 }

128

129 private static T XmlodeToEntity(Xmlode node)

130 {

131 T item = new T();

132

133 if (pe == t)

134 {

135 XmlElement element = (XmlElement)node;

136

137 tyInfo[] propertyInfo = typeof(T).GetProperties( | ce);

138

139 foreach (XmlAttribute attr in utes)

140 {

141 string attrame = r();

142 string attrValue = ng();

143 foreach (tyInfo pinfo in propertyInfo)

144 {

145 if (pinfo != null)

146 {

147 string name = r();

148 Type dbType = tyType;

149 if (name == attrame)

150 {

151 if (OrEmpty(attrValue))

152 continue;

153 switch (ng())

154 {

155 case "32":

156

tValue(item, 32(attrValue), null);

157 break;

158 case "n":

159 ue(item, ean(attrValue), null);

160 break;

161 case "me":

162 ue(item, Time(attrValue), null);

163 break;

164 case "l":

165 ue(item, mal(attrValue), null);

166 break;

167 case "":

168 ue(item, le(attrValue), null);

169 break;

170 default:

171 ue(item, attrValue, null);

172 break;

173 }

174 continue;

175 }

176 }

177 }

178 }

179 }

180 return item;

181 }

182

183 #endregion

184 }

185

186 }

187

-

IList与Xml互相转换

发布时间:2022-02-18 21:02:54
文章版权声明:除非注明,否则均为IT技术网-学习WEB前端开发等IT技术的网络平台原创文章,转载或复制请以超链接形式并注明出处。

发表评论

评论列表 (有 7 条评论,22人围观)