我有xml文件,需要提取所需的标签值并将结果输出到csv文件中,标签名称包含标题并低于其值。从xml文件获取标签值并使用批处理脚本将结果保存在csv文件中
到目前为止,我尝试过的获取XML标记和值,但所有结果都显示在1列而不是表格格式。
XML文件内容(部分文件内容):
<RSP>
<HSI>
<SN>CZ9V </SN>
<SP>Pro Gen8</SP>
<UUID>C9V</UUID>
</HSI>
<STP>3</STP>
<cUUID>343-11</cUUID>
<NICS>
<NIC>
<PORT>1</PORT>
<MACADDR>01:51:f2</MACADDR>
</NIC>
<NIC>
<PORT>1</PORT>
<MACADDR>00:17</MACADDR>
</NIC>
<NIC>
<PORT>2</PORT>
<MACADDR>77:28:02</MACADDR>
</NIC>
<NIC>
<PORT>3</PORT>
<MACADDR>00:04</MACADDR>
</NIC>
<NIC>
<PORT>4</PORT>
<MACADDR>00:06</MACADDR>
</NIC>
</NICS>
</RSP>
输出是从output.csv文件中获取:
SN,SP,UUID,MACADDR,cUUID
CZ9V
Pro Gen8
C9V
01:51:F2 343-11
什么我期待得到的是:
SN,SP,UUID,MACADDR,cUUID
CZ9V,Pro Gen8,C9V,01:51:f2,343-11
当我们在电子表格中打开output.csv时,如果需要使用过滤器选项,上述所有结果应该很容易过滤。
代码到目前为止我获得:
echo SN,SP,UUID,MACADDR,cUUID> %outFile%
set req_tags=SN SP UUID MACADDR cUUID
for %%a in (%inFile%) do (
for %%c in (%req_tags%) do (
set "found="
set search_tag=%%c
for /f "tokens=2 delims=>< " %%b in (' type "%%a" ^|findstr /i !search_tag! ') do set found=%%b
if defined found >> "%outFile%" echo !found!
)
)
需要得到相应的下标记名称标签vlaue在output.csv文件。
您建议的输出是一个固定宽度的文本文件,它与CSV完全不同。 – dbenham
没问题。我不应该在这里格式化预期的输出。 – HULK