C # 모델을 xml 데이터로 직렬화

AwPanda

C # 모델을 사용하여 아래 구조의 xml 파일을 생성하려고합니다.

<root>
  <row>
    <field name="placeholder">Test field 1</field>
    <field name="placeholder">Test field 2</field>
    <field name="placeholder">Test field 3</field>
    <field name="placeholder">Test field 4</field>
    <field name="placeholder">Test field 5</field>
  </row>
  <row>
    <field name="placeholder">Test field 1</field>
    <field name="placeholder">Test field 2</field>
    <field name="placeholder">Test field 3</field>
    <field name="placeholder">Test field 4</field>
    <field name="placeholder">Test field 5</field>
  </row>
</root>

이 모델을 설정했지만 필요한 내용에 대해 완전히 잘못된 출력을 얻습니다.

public class root
{
    public List<row> rows {get; set;}
}

public class row
{
    public List<field> fields {get; set;}
}

public class field
{
    [XmlAttribute("name")]
    public string AttributeName { get; set; }

    [XmlText]
    public string AttributeValue { get; set; }

}

이것은 모델을 만드는 데 사용한 코드입니다.

 var root = new root();
 root.rows = new List<row>();

 for (int x = 0; x < 2; x++)
 {
      root.rows.Add(new row()
      {
           fields = new List<field>()
           {
                new field()
                {
                      AttributeName="placeholder",
                      AttributeValue="test1",
                },
                new field()
                {
                      AttributeName="placeholder",
                      AttributeValue="test2",
                },
                new field()
                {
                      AttributeName="placeholder",
                      AttributeValue="test3",
                },
                new field()
                {
                      AttributeName="placeholder",
                      AttributeValue="test4",
                },
                new field()
                {
                      AttributeName="placeholder",
                      AttributeValue="test5",
                }
           }
    });
}

따라서 루트에는 코드에서 정의 할 수있는 여러 행이 있어야하지만 행에는 속성 이름과 값이 다른 여러 필드가 있습니다.

필드 속성과 값을 채우는 데 필요한 데이터가 루프에 있으므로 새 행은 항상 루프에 추가됩니다.

내가 직면 한 문제는 이것을 실행할 때 아래 출력을 얻는 것입니다.

<root>
    <rows>
        <row>
            <fields>
                <field name="placeholder">test1</field>
                <field name="placeholder">test2</field>
                <field name="placeholder">test3</field>
                <field name="placeholder">test4</field>
                <field name="placeholder">test5</field>
            </fields>
        </row>
        <row>
            <fields>
                <field name="placeholder">test1</field>
                <field name="placeholder">test2</field>
                <field name="placeholder">test3</field>
                <field name="placeholder">test4</field>
                <field name="placeholder">test5</field>
            </fields>
        </row>
    </rows>
</root>
jdweng

다음을 사용하십시오.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
         static void Main(string[] args)
         {
             root root = new root()
             {
                 rows = new List<row>() {
                    new row() {
                        fields = new List<field>() {
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 1"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 2"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 3"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 4"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 5"}
                        }
                    },
                    new row() {
                        fields = new List<field>() {
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 1"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 2"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 3"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 4"},
                            new field() { AttributeName = "placeholder", AttributeValue = "Test Field 5"}
                        }
                    }
                }
             };

             XmlWriterSettings settting = new XmlWriterSettings();
             settting.Indent = true;
             XmlWriter writer = XmlWriter.Create(FILENAME, settting);

             XmlSerializer serializer = new XmlSerializer(typeof(root));
             serializer.Serialize(writer, root);
 
  
         }
    }
    public class root
    {
        [XmlElement(ElementName = "row")]
        public List<row> rows { get; set; }
    }

    public class row
    {
        [XmlElement("field")]
        public List<field> fields { get; set; }
    }

    public class field
    {
        [XmlAttribute("name")]
        public string AttributeName { get; set; }

        [XmlText]
        public string AttributeValue { get; set; }

    }
 
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

XML 직렬화 C #을 사용하여 XML에서 구조로

분류에서Dev

C # Xml 역 직렬화, XML의 데이터 무시

분류에서Dev

C #에서 XML을 개체로 역 직렬화하는 방법

분류에서Dev

내 XML 행을 C # 개체로 직렬화하는 방법

분류에서Dev

XML을 C #의 목록으로 역 직렬화

분류에서Dev

C # XML을 개체 목록으로 역 직렬화

분류에서Dev

xml 개체 C #으로 역 직렬화

분류에서Dev

C # 직렬화 : xml이 비어 있음

분류에서Dev

Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

분류에서Dev

Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

분류에서Dev

Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

분류에서Dev

특정 유형 배열을 xml로 직렬화 / 비 직렬화

분류에서Dev

C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Ecore 모델에 XML 파일로드 (비 직렬화)

분류에서Dev

XML 파일을 C # 모델로 역 직렬화하는 동안 결과 버퍼링에서 XmlReader.Create ()를 중지하려면 어떻게해야합니까?

분류에서Dev

JSON을 C # 개체로 역 직렬화-역 직렬화되는 데이터 없음

분류에서Dev

XML을 개체로 역 직렬화

분류에서Dev

XML을 CSharp 클래스로 직렬화

분류에서Dev

문자열 (구문과 같은 XML 노드)을 C # 개체로 역 직렬화

분류에서Dev

제네릭 형식의 XmlElement 이름을 사용한 XML 직렬화-C #

분류에서Dev

제네릭 형식의 XmlElement 이름을 사용한 XML 직렬화-C #

분류에서Dev

Ember 데이터로 복잡한 모델 역 직렬화

분류에서Dev

JSON을 C # 개체로 역 직렬화

분류에서Dev

이 XML 파일을 역 직렬화하고 데이터 가져 오기

분류에서Dev

C # : 리플렉션없이 개체를 XML로 직렬화

분류에서Dev

Django 직렬화 / 역 직렬화 두 값을 하나의 모델 필드로

분류에서Dev

동적으로 C # 클래스로 XML 역 직렬화

분류에서Dev

XML을 역 직렬화하여 C # 나열

분류에서Dev

특성을 사용하여 XML 역 직렬화 C # 배열

Related 관련 기사

  1. 1

    XML 직렬화 C #을 사용하여 XML에서 구조로

  2. 2

    C # Xml 역 직렬화, XML의 데이터 무시

  3. 3

    C #에서 XML을 개체로 역 직렬화하는 방법

  4. 4

    내 XML 행을 C # 개체로 직렬화하는 방법

  5. 5

    XML을 C #의 목록으로 역 직렬화

  6. 6

    C # XML을 개체 목록으로 역 직렬화

  7. 7

    xml 개체 C #으로 역 직렬화

  8. 8

    C # 직렬화 : xml이 비어 있음

  9. 9

    Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

  10. 10

    Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

  11. 11

    Dictionary <string, string>을 XML로 직렬화 / 비 직렬화

  12. 12

    특정 유형 배열을 xml로 직렬화 / 비 직렬화

  13. 13

    C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  14. 14

    Ecore 모델에 XML 파일로드 (비 직렬화)

  15. 15

    XML 파일을 C # 모델로 역 직렬화하는 동안 결과 버퍼링에서 XmlReader.Create ()를 중지하려면 어떻게해야합니까?

  16. 16

    JSON을 C # 개체로 역 직렬화-역 직렬화되는 데이터 없음

  17. 17

    XML을 개체로 역 직렬화

  18. 18

    XML을 CSharp 클래스로 직렬화

  19. 19

    문자열 (구문과 같은 XML 노드)을 C # 개체로 역 직렬화

  20. 20

    제네릭 형식의 XmlElement 이름을 사용한 XML 직렬화-C #

  21. 21

    제네릭 형식의 XmlElement 이름을 사용한 XML 직렬화-C #

  22. 22

    Ember 데이터로 복잡한 모델 역 직렬화

  23. 23

    JSON을 C # 개체로 역 직렬화

  24. 24

    이 XML 파일을 역 직렬화하고 데이터 가져 오기

  25. 25

    C # : 리플렉션없이 개체를 XML로 직렬화

  26. 26

    Django 직렬화 / 역 직렬화 두 값을 하나의 모델 필드로

  27. 27

    동적으로 C # 클래스로 XML 역 직렬화

  28. 28

    XML을 역 직렬화하여 C # 나열

  29. 29

    특성을 사용하여 XML 역 직렬화 C # 배열

뜨겁다태그

보관