转换器中间XML格式说明文档
程序员文章站
2022-04-13 08:48:46
...
整体要求
- 转换程序为DOS程序,名称为
converter.exe
- 程序功能:将指定文件转换成XML格式
- 程序调用格式为
converter.exe input_file output_file
, 如在DOS命令行输入以下命令:c:\>converter.exe "c:\data\sample.xls" "d:\output\sample_20190320220105.xml"
即可将c:\data\sample.xls
进行转换后输出生成d:\output\sample_20190320220105.xml
。
输出XML格式定义
在测量时,有几个重要的概念:
- 零件(part):表示以需要观测的主体,格式为K1XXX,如K1001表示编号,K1002表示名称。
- 参数(character):零件的属性,如长宽高等,格式为K2XXX和K8XXX。
- 测量值(data):零件的某个属性的测量值信息,格式为K0XXX。
- 附加信息(additional information): 即测量值的属性,格式为K0XXX。
他们的关系如下图所示的树型关系。
part
├── character
│ ├── data
│ └── data
├──character
│ ├── data
│ │ ├── additional_information
│ │ └── additional_information
│ └── data
│ ├── additional_information
│ └── additional_information
└── character
├── data
└── data
├── additional_information
└── additional_information
为了表示树型结构,我们使用XML进行定义。假设零件为车窗面板1,需要测量的参数有宽高和高度,可以根据某输入文件生成以下XML文档。
<?xml version="1.0" encoding="utf-8"?>
<part K1001="P342K" K1002="车窗面板1">
<character K2001="1" K2002="宽度">
<data k0001="2.1513" k0004="2019/03/04 14:34:20" />
<data k0001="2.1545" k0004="2019/03/04 14:34:32" />
<data k0001="2.1522" k0004="2019/03/04 14:34:45" />
</character>
<character K2001="2" K2002="高度">
<data k0001="3.513" k0004="2019/03/04 14:44:21" />
<data k0001="3.495" k0004="2019/03/04 14:44:42" />
<data k0001="3.522" k0004="2019/03/04 14:44:58" />
</character>
</part>
附一: C# 读取XML代码
public void LoadTest()
{
XmlDocument doc = new XmlDocument();
doc.Load(@"..\data\sample.xml");
XmlNode xn = doc.SelectSingleNode("part");
foreach (XmlNode character in xn.ChildNodes)
{
Console.WriteLine("---------- Character ---------");
foreach (XmlAttribute catt in character.Attributes)
{
Console.WriteLine(catt.Name + "=" + catt.Value);
}
foreach (XmlNode data in character.ChildNodes)
{
Console.WriteLine("---------- Character.Data ---------");
foreach (XmlAttribute datt in data.Attributes)
{
Console.WriteLine(datt.Name + "=" + datt.Value);
}
}
}
}
执行以后显示以下内容
---------- Character ---------
K2001=1
K2002=宽度
---------- Character.Data ---------
k0001=2.1513
k0004=2019/03/04 14:34:20
---------- Character.Data ---------
k0001=2.1545
k0004=2019/03/04 14:34:32
---------- Character.Data ---------
k0001=2.1522
k0004=2019/03/04 14:34:45
---------- Character ---------
K2001=2
K2002=高度
---------- Character.Data ---------
k0001=3.513
k0004=2019/03/04 14:44:21
---------- Character.Data ---------
k0001=3.495
k0004=2019/03/04 14:44:42
---------- Character.Data ---------
k0001=3.522
k0004=2019/03/04 14:44:58
上一篇: wkhtmltopdf 说明文档