Ich habe XML-Datei und müssen die erforderlichen Tags Werte extrahieren und das Ergebnis in CSV-Datei mit Tag-Namen hat Header und unter seinem Wert ausgeben.Erhalten von Tags Wert aus Xml-Datei und Speichern von Ergebnissen in CSV-Datei mit Batch-Skript
soweit was ich versucht habe, bekommt das XML-Tag und die Werte, aber alle Ergebnisse werden in 1 Spalte statt wie Tabellenformat angezeigt.
XML-Datei Inhalt (Teil-Dateiinhalt):
<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>
Ausgang ist aus output.csv Datei bekommen:
SN,SP,UUID,MACADDR,cUUID
CZ9V
Pro Gen8
C9V
01: 51: f2 343-11
Was Ich wollte bekommen ist:
SN,SP,UUID,MACADDR,cUUID
CZ9V,Pro Gen8,C9V,01:51:f2,343-11
Wenn wir die output.csv im Arbeitsblatt öffnen, sollte das obige Ergebnis leicht zu filtern sein, wenn es mit der Filteroption benötigt wird.
-Code so weit sind zu bekommen:
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!
)
)
müssen den Tag vlaue unter entsprechenden Tag-Namen in output.csv Datei zu erhalten.
Ihre vorgeschlagene Ausgabe ist eine Textdatei mit fester Breite, die völlig anders als eine CSV ist. – dbenham
ok hab es. Ich hätte die erwartete Ausgabe hier nicht formatieren sollen. – HULK