1.简单的根据Key的值来获取xml的value
<?xml version="1.0" standalone="no"?>
<!--This is a comment-->
<configSections>
<appSettings>
<add key="MySqlCon" value="Database=test;Data Source=127.0.0.1;User Id=root;Password=root;pooling=false;CharSet=utf8;port=3306" />
<add key="csvFilePath" value="E:\Demo\Demo\bin\Debug\" />
</appSettings>
</configSections>
/// <summary>
/// 根据key值获取value值
/// </summary>
/// <param name="configKey">key值</param>
/// <returns>value值</returns>
public static string ReadConfig(string configKey)
{
string configValue = "";
XmlDocument doc = new XmlDocument();
//导入xml文件
doc.Load(_filePath);
//找出名称为“add”的所有元素
XmlNodeList nodes = doc.GetElementsByTagName("add");
for (int i = 0; i < nodes.Count; i++)
{
//获得将当前元素的key属性
XmlAttribute att = nodes[i].Attributes["key"];
//根据元素的第一个属性来判断当前的元素是不是目标元素
if (att.Value == "" + configKey + "")
{
//对目标元素中的第二个属性赋值
att = nodes[i].Attributes["value"];
configValue = att.Value;
break;
}
}
return configValue;
}
2.生成xml文件
private void btnClose_Click(object sender, EventArgs e)
{
XmlTextWriter myXmlTextWriter = new XmlTextWriter("swms_setting.xml", null);
myXmlTextWriter.Formatting = Formatting.Indented;
myXmlTextWriter.WriteStartDocument(false);
myXmlTextWriter.WriteComment("This is a comment");
String SqlConStr = ConfigFactory.ReadConfig("MySqlCon");
MySqlConnection myCon = new MySqlConnection(SqlConStr);
myCon.Open();
try
{
string sqlstr = "select * from work";
MySqlCommand command = new MySqlCommand(sqlstr, myCon);
DataTable dt = new DataTable();
MySqlDataAdapter sda = new MySqlDataAdapter(command);
sda.Fill(dt);
myXmlTextWriter.WriteStartElement("configSections");
myXmlTextWriter.WriteStartElement("Works", null);
for (int i = 0; i < dgv.Rows.Count; i++)
{
string workid = dt.Rows[i].ItemArray[0].ToString();
string workname = dt.Rows[i].ItemArray[1].ToString();
string itemid = dt.Rows[i].ItemArray[2].ToString();
string itemName = "";
StringBuilder selectstr = new StringBuilder();
selectstr.Append("select Item from item where ItemId in");
selectstr.Append("(" + itemid.ToString() + ")");
MySqlCommand cmd = new MySqlCommand(selectstr.ToString(), myCon);
DataTable dt_item = new DataTable();
MySqlDataAdapter sda_item = new MySqlDataAdapter(cmd);
sda_item.Fill(dt_item);
for (int j = 0; j < dt_item.Rows.Count; j++)
{
itemName = itemName + ',' + dt_item.Rows[j].ItemArray[0].ToString();
}
itemName = itemName.Substring(1, itemName.Length - 1);
myXmlTextWriter.WriteStartElement("Works", null);
myXmlTextWriter.WriteElementString("WorkId", null, workid);
myXmlTextWriter.WriteElementString("WorkName", null, workname);
myXmlTextWriter.WriteElementString("ItemId", null, itemid);
myXmlTextWriter.WriteElementString("ItemName", null, itemName);
myXmlTextWriter.WriteEndElement();
}
myXmlTextWriter.WriteEndElement();
myXmlTextWriter.Flush();
myXmlTextWriter.Close();
Console.ReadLine();
MessageBox.Show("成功生成XML文件!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch
{
MessageBox.Show("ERR");
}
// CopyFileToPDA(@"swms_setting.xml", @"\Temp\swms_setting.xml");
this.Close();
}
生成的xml文件如下:
<?xml version="1.0" standalone="no"?>
<!--This is a comment-->
<configSections>
<Works>
<Works>
<WorkId>001</WorkId>
<WorkName>入荷予定</WorkName>
<ItemId>0001,0002,0003,0004,0005,0006,0007,0008</ItemId>
<ItemName>商品コード,予定数量,商品名称,実際数量,単位,作業開始日時,作業終了日時,場所</ItemName>
</Works>
<Works>
<WorkId>002</WorkId>
<WorkName>入荷検品</WorkName>
<ItemId>0005,0006,0007,0008,0009</ItemId>
<ItemName>単位,作業開始日時,作業終了日時,場所,結果</ItemName>
</Works>
<Works>
<WorkId>003</WorkId>
<WorkName>入庫</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>004</WorkId>
<WorkName>出荷予定</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>005</WorkId>
<WorkName>PICK</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>006</WorkId>
<WorkName>出荷照合</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>007</WorkId>
<WorkName>配送</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>008</WorkId>
<WorkName>棚卸</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>009</WorkId>
<WorkName>移動</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>010</WorkId>
<WorkName>入港</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>011</WorkId>
<WorkName>出港</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>012</WorkId>
<WorkName>バンニング</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>013</WorkId>
<WorkName>デバンニング</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>014</WorkId>
<WorkName>パッキング</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
<Works>
<WorkId>015</WorkId>
<WorkName>加工</WorkName>
<ItemId>0001,0002</ItemId>
<ItemName>商品コード,予定数量</ItemName>
</Works>
</Works>
</configSections>