XML (6) Schreiben Sie selbst einen XML-Serialisierer

黄舟
Freigeben: 2017-02-10 16:35:07
Original
1532 Leute haben es durchsucht

Im vorherigen Artikel wurde das Schreiben von Inhalten in eine XML-Datei über einen Serialisierer vorgestellt. Hier verwenden wir immer noch die Personenklasse zum Schreiben.

1. Schreiben Sie zuerst ein Personenobjekt

<span style="font-family:Microsoft YaHei;font-size:18px;">person p=new person() {Name = "istari", Age = 22, Email = "1061399756@qq.com"};</span>
Nach dem Login kopieren

2. Schreiben Sie dann eine Methode, um dieses Objekt auf unsere Weise zu verwenden Reflexion wird verwendet.

<span style="font-family:Microsoft YaHei;font-size:18px;">MySerialize(p, typeof(person));</span>
Nach dem Login kopieren

3. Schreiben Sie Ihren eigenen Serializer in dieser Methode


<span style="font-family:Microsoft YaHei;font-size:18px;">private static void MySerialize(object obj, Type type)
        {
            //创建一个XDocument对象
            XDocument document = new XDocument();
            //写入xml文件,把类名作为根节点
            string nsStr = type.ToString();
            string className = nsStr.Substring(nsStr.LastIndexOf(&#39;.&#39;) + 1);
            //写入根节点
            XElement rootElement = new XElement(className);
            //获取当前类型中的所有的属性
            PropertyInfo[] properties = type.GetProperties();
            //遍历
            foreach (PropertyInfo  item in properties)
            {
                rootElement .SetElementValue (item.Name ,item.GetValue (obj,null));
            }
            document .Add (rootElement );
            document .Save (className +".xml");
        }</span>
Nach dem Login kopieren

Reflection is Wird verwendet, um alle Attribute in der Personenklasse abzurufen.

Ergebnis

<span style="font-family:Microsoft YaHei;font-size:18px;"><?xml version="1.0" encoding="utf-8"?>
<person>
  <Name>istari</Name>
  <Age>22</Age>
  <Email>1061399756@qq.com</Email>
</person></span>
Nach dem Login kopieren



Das Obige ist der Inhalt von XML (6). Schreiben Sie selbst einen XML-Serialisierer. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!




Verwandte Etiketten:
xml
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage