forked from yavordimitrov/SmartStoreNET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathXmlHelper.cs
More file actions
114 lines (105 loc) · 3.48 KB
/
Copy pathXmlHelper.cs
File metadata and controls
114 lines (105 loc) · 3.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
using System;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
namespace SmartStore.Core
{
/// <summary>
/// Xml helper class
/// </summary>
public partial class XmlHelper
{
#region Methods
/// <summary>
/// XML Encode
/// </summary>
/// <param name="str">String</param>
/// <returns>Encoded string</returns>
public static string XmlEncode(string str)
{
if (str == null)
return null;
str = Regex.Replace(str, @"[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD]", "", RegexOptions.Compiled);
return XmlEncodeAsIs(str);
}
/// <summary>
/// XML Encode as is
/// </summary>
/// <param name="str">String</param>
/// <returns>Encoded string</returns>
public static string XmlEncodeAsIs(string str)
{
if (str == null)
return null;
using (var sw = new StringWriter())
using (var xwr = new XmlTextWriter(sw))
{
xwr.WriteString(str);
return sw.ToString();
}
}
/// <summary>
/// Encodes an attribute
/// </summary>
/// <param name="str">Attribute</param>
/// <returns>Encoded attribute</returns>
public static string XmlEncodeAttribute(string str)
{
if (str == null)
return null;
str = Regex.Replace(str, @"[^\u0009\u000A\u000D\u0020-\uD7FF\uE000-\uFFFD]", "", RegexOptions.Compiled);
return XmlEncodeAttributeAsIs(str);
}
/// <summary>
/// Encodes an attribute as is
/// </summary>
/// <param name="str">Attribute</param>
/// <returns>Encoded attribute</returns>
public static string XmlEncodeAttributeAsIs(string str)
{
return XmlEncodeAsIs(str).Replace("\"", """);
}
/// <summary>
/// Decodes an attribute
/// </summary>
/// <param name="str">Attribute</param>
/// <returns>Decoded attribute</returns>
public static string XmlDecode(string str)
{
var sb = new StringBuilder(str);
return sb.Replace(""", "\"").Replace("'", "'").Replace("<", "<").Replace(">", ">").Replace("&", "&").ToString();
}
/// <summary>
/// Serializes a datetime
/// </summary>
/// <param name="dateTime">Datetime</param>
/// <returns>Serialized datetime</returns>
public static string SerializeDateTime(DateTime dateTime)
{
var xmlS = new XmlSerializer(typeof(DateTime));
var sb = new StringBuilder();
using (var sw = new StringWriter(sb))
{
xmlS.Serialize(sw, dateTime);
return sb.ToString();
}
}
/// <summary>
/// Deserializes a datetime
/// </summary>
/// <param name="dateTime">Datetime</param>
/// <returns>Deserialized datetime</returns>
public static DateTime DeserializeDateTime(string dateTime)
{
var xmlS = new XmlSerializer(typeof(DateTime));
using (var sr = new StringReader(dateTime))
{
object test = xmlS.Deserialize(sr);
return (DateTime)test;
}
}
#endregion
}
}