1.对象类
public class TestXml
{
public List<VersionAsset> list = new List<VersionAsset>();
}
public class VersionAsset
{
public string assetName = "";
public string md5Value = "";
public int assetSize = 0;
public ActionType actionType = ActionType.NONE;
public enum ActionType
{
NONE,
ADD,
DELETE,
UPDATE,
}
}
2.生成XML
public void CreateXml()
{
TestXml testXml = new TestXml();
for(int i=0;i<5;i++)
{
VersionAsset temp = new VersionAsset();
temp.assetName = "assetName"+i;
temp.md5Value = "md5Value"+i;
temp.assetSize = i;
testXml.list.Add(temp);
}
string path = Application.dataPath + "/testXml.xml";
System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(TestXml));
string fileDir = System.IO.Path.GetDirectoryName(path);
if (!System.IO.Directory.Exists(fileDir))
{
System.IO.Directory.CreateDirectory(fileDir);
}
System.IO.StreamWriter writer = new System.IO.StreamWriter(path);
xml.Serialize(writer,testXml);
writer.Close();
}
3.结果。
1)在工程目录下找到testXml.xml的文件
2)内容
<?xml version="1.0" encoding="utf-8"?>
<TestXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<list>
<VersionAsset>
<assetName>assetName0</assetName>
<md5Value>md5Value0</md5Value>
<assetSize>0</assetSize>
<actionType>NONE</actionType>
</VersionAsset>
<VersionAsset>
<assetName>assetName1</assetName>
<md5Value>md5Value1</md5Value>
<assetSize>1</assetSize>
<actionType>NONE</actionType>
</VersionAsset>
<VersionAsset>
<assetName>assetName2</assetName>
<md5Value>md5Value2</md5Value>
<assetSize>2</assetSize>
<actionType>NONE</actionType>
</VersionAsset>
<VersionAsset>
<assetName>assetName3</assetName>
<md5Value>md5Value3</md5Value>
<assetSize>3</assetSize>
<actionType>NONE</actionType>
</VersionAsset>
<VersionAsset>
<assetName>assetName4</assetName>
<md5Value>md5Value4</md5Value>
<assetSize>4</assetSize>
<actionType>NONE</actionType>
</VersionAsset>
</list>
</TestXml>
4.总结
主要用到类 System.Xml.Serialization.XmlSerializer、System.IO.StreamWriter
用到构造器System.Xml.Serialization.XmlSerializer(Type)、用到方法Serialize(Writer,Object)
注意:只有对象类中的public修饰的变量才会生成到XML中(包括继承自父类的public修饰的变量)