C#代码如下。我在第一个条目创建了一个xml,然后使用.append
属性将节点添加到xml。
XmlSerializer xs = new XmlSerializer(typeof(DataClass));
if (!File.Exists("Data.xml"))
{
using (FileStream fs = new FileStream("Data.xml", FileMode.Create))
{
xs.Serialize(fs, data);
fs.Close();
fs.Dispose();
MessageBox.Show("Data loaded to the xml");
}
}
else if (File.Exists("Data.xml"))
{
using (FileStream fs = new FileStream("Data.xml", FileMode.Append))
{
xs.Serialize(fs, data);
fs.Close();
fs.Dispose();
MessageBox.Show("Data loaded to the xml");
}
}
这导致xml如下。它为每个条目创建一个新节点 我可以在任何地方向xml添加主标记,因为我后来需要将数据加载到数据网格视图(xml需要格式良好)以及子节点。
<?xml version="1.0"?>
<DataClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<pathI>D:\POC\Input\1</pathI>
<pathO>D:\POC\Output</pathO>
<prefix>1_</prefix>
<frequency>10</frequency>
</DataClass>
<?xml version="1.0"?>
<DataClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<pathI>D:\POC\Input\2</pathI>
<pathO>D:\POC\Output</pathO>
<prefix>2_</prefix>
<frequency>20</frequency>
</DataClass>
而我想要的是:
<?xml version="1.0"?>--- node tag just once and not with every entry
<Data>--- a main tag open
<DataClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<pathI>D:\POC\Input\1</pathI>
<pathO>D:\POC\Output</pathO>
<prefix>1_</prefix>
<frequency>10</frequency>
</DataClass>
<DataClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<pathI>D:\POC\Input\2</pathI>
<pathO>D:\POC\Output</pathO>
<prefix>2_</prefix>
<frequency>20</frequency>
</DataClass>
</Data>-- main tag closing