县级监管平台

XmlFormatHelper.cs 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. using System.Data;
  2. using System.Xml.Serialization;
  3. using System.Text;
  4. using System.Xml;
  5. namespace CallCenterApi.Common
  6. {
  7. public static class XmlFormatHelper
  8. {
  9. /// <summary>
  10. /// DataSet转XML字符串
  11. /// </summary>
  12. /// <param name="Ds"></param>
  13. /// <returns></returns>
  14. public static string DataSetToXml(DataSet Ds)
  15. {
  16. string xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
  17. xmlStr += "<NewDataSet>";
  18. for (int i = 0; i < Ds.Tables.Count; i++)
  19. {
  20. xmlStr += GetTableSetXml("NewTable" + i, Ds.Tables[i]);
  21. }
  22. xmlStr += "</NewDataSet>";
  23. return xmlStr;
  24. }
  25. /// <summary>
  26. /// DataSet转XML字符串
  27. /// </summary>
  28. /// <param name="Ds"></param>
  29. /// <returns></returns>
  30. public static string DataSetToXmlTable(DataSet Ds)
  31. {
  32. string xmlStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n";
  33. xmlStr += "<NewDataSet>";
  34. for (int i = 0; i < Ds.Tables.Count; i++)
  35. {
  36. xmlStr += GetTableSetXmlTable("NewTable" + i, Ds.Tables[i]);
  37. }
  38. xmlStr += "</NewDataSet>";
  39. return xmlStr;
  40. }
  41. public static string GetTableSetXmlTable(string tableName, DataTable table)
  42. {
  43. string str = string.Empty;
  44. if (table.Rows.Count > 0)
  45. {
  46. for (int i = 0; i < table.Rows.Count; i++)
  47. {
  48. str += "<" + tableName + ">";
  49. for (int j = 0; j < table.Columns.Count; j++)
  50. {
  51. string clName = table.Columns[j].ColumnName;
  52. str += "<" + clName + ">" + table.Rows[i][clName] + "</" + clName + ">";
  53. }
  54. str += "</" + tableName + ">";
  55. }
  56. }
  57. else
  58. {
  59. str += "<" + tableName + ">";
  60. str += "<tablerows>0</tablerows>";
  61. str += "</" + tableName + ">";
  62. }
  63. return str;
  64. }
  65. public static string GetTableSetXml(string tableName, DataTable table)
  66. {
  67. string str = string.Empty;
  68. for (int i = 0; i < table.Rows.Count; i++)
  69. {
  70. str += "<" + tableName + ">";
  71. for (int j = 0; j < table.Columns.Count; j++)
  72. {
  73. string clName = table.Columns[j].ColumnName;
  74. str += "<" + clName + ">" + table.Rows[i][clName] + "</" + clName + ">";
  75. }
  76. str += "</" + tableName + ">";
  77. }
  78. return str;
  79. }
  80. /// <summary>
  81. /// 把字符串转成XML格式,字符串格式:{" ID:1,User:aaa "},仅限根目录下的子节点,附加根节点"Root"
  82. /// </summary>
  83. /// <param name="Souce"></param>
  84. /// <returns></returns>
  85. public static string StringToXml(string Souce)
  86. {
  87. StringBuilder str = new StringBuilder();
  88. str.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
  89. str.Append("<Root>\r\n");
  90. string[] _list = Souce.Split(',');
  91. for (int i = 0; i < _list.Length; i++)
  92. {
  93. string[] _temp = _list[i].Split(':');
  94. str.Append("<" + _temp[0] + ">");
  95. str.Append(_temp[1]);
  96. str.Append("</" + _temp[0] + ">\r\n");
  97. }
  98. str.Append("</Root>");
  99. return str.ToString();
  100. }
  101. public static string ToXml<T>(T item)
  102. {
  103. XmlSerializer serializer = new XmlSerializer(item.GetType());
  104. StringBuilder sb = new StringBuilder();
  105. using (XmlWriter writer = XmlWriter.Create(sb))
  106. {
  107. serializer.Serialize(writer, item);
  108. return sb.ToString();
  109. }
  110. }
  111. public static string ApiGetDataSetToXml(DataSet Ds)
  112. {
  113. string str = string.Empty;
  114. str += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
  115. str += "<document>";
  116. str += "<site_name><![CDATA[]]></site_name>";
  117. str += "<site_url><![CDATA[http://www.com]]></site_url>";
  118. str += "<site_logo><![CDATA[http://www.com/images/logosd.gif]]></site_logo>";
  119. str += "<update_time><![CDATA[" + Ds.Tables[0].Rows[0]["update_time"] + "]]></update_time>";
  120. str += "<items>";
  121. if (Ds.Tables.Count > 1)
  122. {
  123. var table = Ds.Tables[1];
  124. for (int i = 0; i < table.Rows.Count; i++)
  125. {
  126. str += "<item>";
  127. for (int j = 0; j < table.Columns.Count; j++)
  128. {
  129. string clName = table.Columns[j].ColumnName;
  130. str += "<" + clName + "><![CDATA[" + table.Rows[i][clName] + "]]></" + clName + ">";
  131. }
  132. str += "</item>";
  133. }
  134. }
  135. str += "</items>";
  136. str += "</document>";
  137. return str;
  138. }
  139. }
  140. }