c XML反序列化 修改字首

2021-10-04 11:15:44 字數 1677 閱讀 1890

物件類

//xml命名空間,可用於與反序列化方法中指定當前節點的字首,需要注意的是,此方法指定命名空間所修改的字首對當前節點包含的所有子節點生效,對當前節點本身不生效,當前節點的字首繼承父節點

[xmlroot(namespace = "http://這是乙個aaa的**/")]

public class aaa

}[xmlroot(namespace = "http://這是乙個bbb的**/")]

public class bbb

}public class ccc

}

xml反序列化方法

/// /// 將乙個物件序列化為xml字串

///

/// 要序列化的物件

/// 編碼方式

/// 序列化產生的xml字串

public static string xmlserialize(object o, encoding encoding)}}

catch (exception ex)

return xml;

}

使用

aaa a = new aaa();

a.bbb = new bbb();

a.bbb.ccc = new ccc();

a.bbb.ccc.str = "指定字首示例";

string s = xmltool.xmlserialize(a, encoding.utf8);

結果

<?xml version="1.0" encoding="utf-8"?>

指定字首示例

以下為改進方法

/// /// 將乙個物件序列化為xml字串

///

/// 要序列化的物件

/// 編碼方式,預設為utf8

/// 需要指定的字首對應,格式為 key為命名空間,value為字首

/// 序列化產生的xml字串

public static string xmlserialize(object o, encoding encoding, dictionarydicprefix)

string xml = "";

try引數1, 引數2);

//解讀:"引數1"為要使用的字首,對應類中使用"引數2"的命名空間的節點

#endregion

xmlserializer serializer = new xmlserializer(o.gettype());

serializer.serialize(writer, o, namespaces);

writer.close();

stream.position = 0;

using (streamreader reader = new streamreader(stream, encoding))}}

catch (exception ex)

return xml;

}

使用示例

string xml = xmlserialize(a, encoding.utf8, new dictionary() ,  });

c XML序列化與反序列化

序列化物件 public class people xmlattribute age public int age xmlroot root public class student people xmlelement number public int number void main strin...

C xml序列化與反序列化 特性的使用

示例,主要包括system.xml.serialization命名空間下的xmlroot xmlelement xmlattribute xmltext xmlignore等特性的簡單使用,高階使用可自行檢視msdn。實體類 xmlroot 資訊 該特性標記為根節點 public class inf...

C xml格式字串 反序列化和序列化

最近在做c 乙個專案,涉及到序列化知識點,但對於複雜的xml格式不知道如何編寫實體類,網上也沒找到相同型別格式的xml介紹的部落格資料,所以研究了兩天,終於做出來了,先把xml格式的字串貼上來。cw201906271117030642 030.0 15000119230104170217 15000...