1.xml文件轉爲cs文件
1.1.方法:打開“VS 開發人員命令”窗口
xml轉xsd執行語句--' xsd xml文件路徑 /outputdir:存放的文件夾路徑'
xsd轉cs執行語句-'xsd xsd文件路徑 /classes /o:存放的文件夾路徑'.
1.2.舉例:
2.xml格式數據轉爲對象實體
2.1.方法代碼:
實體類型 實體名稱 = new 實體類型();
實體名稱 = (實體類型)Deserialize(xml格式數據字符串,
實體名稱 .GetType());
2.2.轉換方法:
/// <summary>
/// 反序列化XML字符串爲指定類型
/// </summary>
public static object Deserialize(string Xml, Type ThisType)
{
XmlSerializer xmlSerializer = new XmlSerializer(ThisType);
object result;
try
{
using (StringReader stringReader = new StringReader(Xml))
{
result = xmlSerializer.Deserialize(stringReader);
}
}
catch (Exception innerException)
{
bool flag = false;
if (Xml != null)
{
if (Xml.StartsWith(Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble())))
{
flag = true;
}
}
throw new ApplicationException(string.Format("Couldn't parse XML: '{0}'; Contains BOM: {1}; Type: {2}.",
Xml, flag, ThisType.FullName), innerException);
}
return result;
}
3.實體轉換爲xml格式數據
3.1.方法代碼:
Serializer(實體名稱.GetType(), 實體名稱);
3.2.轉換方法:
/// <summary>
/// 序列化XML文件
/// </summary>
/// <param name="type">類型</param>
/// <param name="obj">對象</param>
/// <returns></returns>
public static string Serializer(Type type, object obj)
{
MemoryStream Stream = new MemoryStream();
//創建序列化對象
XmlSerializer xml = new XmlSerializer(type);
try
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
XmlTextWriter writer = new XmlTextWriter(Stream, Encoding.UTF8);
//序列化對象
XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
namespaces.Add("", "");
xml.Serialize(writer, obj, namespaces);
}
catch (InvalidOperationException)
{
throw;
}
Stream.Position = 0;
StreamReader sr = new StreamReader(Stream);
string str = sr.ReadToEnd();
return str;
}