다음 클래스가 있습니다. 코드 아래C에서 xml 객체를 직렬화하는 동안 배열 요소의 순서를 정의하는 방법 #
[XmlRoot("MyRoot")]
public class MyRoot
{
[XmlElement("Node1")]
public Node1[] Node1 { get; set; }
[XmlElement("Node2")]
public Node2[] Node2 { get; set; }
[XmlElement("Node3")]
public Node3[] Node3 { get; set; }
}
public class Node1
{
[XmlElement("Attrib11")]
public string Attrib11 { get; set; }
[XmlElement("Attrib12")]
public string Attrib12 { get; set; }
}
public class Node2
{
[XmlElement("Attrib21")]
public string Attrib21 { get; set; }
[XmlElement("Attrib22")]
public string Attrib22 { get; set; }
}
public class Node3
{
[XmlElement("Attrib31")]
public string Attrib31 { get; set; }
[XmlElement("Attrib32")]
public string Attrib32 { get; set; }
}
이 데이터를 작성하여 직렬화
var abc = new XML834.MyRoot();
abc.Node1 = new XML834.Node1[] { new XML834.Node1() { Attrib11 = "a11", Attrib12 = "b12" }, new XML834.Node1() { Attrib11 = "c11", Attrib12 = "c12" } };
abc.Node2 = new XML834.Node2[] { new XML834.Node2() { Attrib21 = "a21", Attrib22 = "b22" }, new XML834.Node2() { Attrib21 = "c21", Attrib22 = "c22" } };
abc.Node3 = new XML834.Node3[] { new XML834.Node3() { Attrib31 = "a31", Attrib32 = "b32" }, new XML834.Node3() { Attrib31 = "c31", Attrib32 = "c32" } };
string xmlString = null;
using (MemoryStream memoryStream = new MemoryStream())
using (XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8))
{
XmlSerializer xs = new XmlSerializer(typeof(XML834.MyRoot));
xs.Serialize(xmlTextWriter, abc);
MemoryStream memoryBaseStream;
memoryBaseStream = (MemoryStream)xmlTextWriter.BaseStream;
UTF8Encoding encoding = new UTF8Encoding();
xmlString = encoding.GetString(memoryBaseStream.ToArray());
memoryBaseStream.Dispose();
xmlTextWriter.Close();
memoryStream.Close();
Console.WriteLine(xmlString);
}
내가 얻고 출력은 내가 배열 항목의 순서를 지정하려고
<?xml version="1.0" encoding="utf 8" ?>
<MyRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema instance">
<Node1>
<Attrib11>a11</Attrib11>
<Attrib12>b12</Attrib12>
</Node1>
<Node1>
<Attrib11>c11</Attrib11>
<Attrib12>c12</Attrib12>
</Node1>
<Node2>
<Attrib21>a21</Attrib21>
<Attrib22>b22</Attrib22>
</Node2>
<Node2>
<Attrib21>c21</Attrib21>
<Attrib22>c22</Attrib22>
</Node2>
<Node3>
<Attrib31>a31</Attrib31>
<Attrib32>b32</Attrib32>
</Node3>
<Node3>
<Attrib31>c31</Attrib31>
<Attrib32>c32</Attrib32>
</Node3>
</MyRoot>
입니다. 이 출력을 얻을 수 있습니까?
<?xml version="1.0" encoding="utf 8" ?>
<MyRoot xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema instance">
<Node1>
<Attrib11>a11</Attrib11>
<Attrib12>b12</Attrib12>
</Node1>
<Node2>
<Attrib21>a21</Attrib21>
<Attrib22>b22</Attrib22>
</Node2>
<Node3>
<Attrib31>c31</Attrib31>
<Attrib32>c32</Attrib32>
</Node3>
<Node1>
<Attrib11>c11</Attrib11>
<Attrib12>c12</Attrib12>
</Node1>
<Node2>
<Attrib21>c21</Attrib21>
<Attrib22>c22</Attrib22>
</Node2>
<Node3>
<Attrib31>a31</Attrib31>
<Attrib32>b32</Attrib32>
</Node3>
</MyRoot>
감사합니다. 작동 할 것 같습니다. 내가 너를 알려주려고하자. – Esen
빙고, 그것은 매력처럼 일했습니다. 고맙습니다. – Esen