欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

转换器中间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