我遇到了这个问题。我有大约10k xml文件包含一堆性能数据。我需要parce,然后将它们导入excel,这样我就可以生成一个图形。
我正在努力决定解决这个问题的最佳方法。我无法直接导入,因为excel不会将其识别为有效的xml格式。 (excel给我的架构不被认可或某些东西)
文件格式如下:(我只包含了有用的信息。) 该文件的名称如下所示:YYDDMM.startOfPMPeriod_endOfPMPeriod 并在文件中:
<time stamp>
<PM category1>
<PM category2>
<PM category3>
...
<sub system 1>
<result>1</result>
<result>2.0</result>
...
<sub system 2>
<result>0.221</result>
<result>2.0</result>
...
<sub system n>
<result>1</result>
<result>2.0</result>
这些文件大约有10k。每个文件大约有6k行。 :)
我不确定如何处理这个问题。我得到了它的基本逻辑:
while (we got more files to read)
read a file
parse PM category and timestamp
while (not end of file)
reading in results data and the subsystems
//store it in an array of some sort, but I am not sure about the structure of it
//once we are done with our files
pass the array to excel, (somehow, maybe as a CSV?)
你们认为解决这个问题的最佳方法是什么?我的编程技巧有限。我熟悉java,c ++和bash脚本。三维阵列超出我的范围。我有两个方面的麻烦。 :)我最复杂的任务是使用java创建一个多线程银行应用程序。
戴维
更新:适用于excel 2003 并且excel表应该如下所示:我无法附加图像,因此您必须对此进行处理:
timestamp 1 timestamp2 timestamp 3
subsystem 1 pm cat 1
pm cat 2
pm cat 3
subsystem 2 pm cat 1
pm cat 2
pm cat 3
答案 0 :(得分:0)
我建议您先使用VSTO插入一段数据。插入单行后,可以重复使用所学内容插入多行。
XML到NxN数组是一种过于复杂的攻击XML解析方法。可以通过XPATH或LINQ to XML有效地完成XML解析。如果你没有使用LINQ的经验,也许XPATH是一个更好的开始。
首先弄清楚如何在excel中查看行,然后相应地提取XML。这将避免使用N x N数组,并为您提供生成已知输出的目标。