Jump to content

novabyte

Members
  • Gesamte Inhalte

    1
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von novabyte

  1. Hallo zusammen, ich kämpfe seid einiger Zeit mit der Auswertung von XML-Daten, und bekomme keine passende Lösung. Hoffentlich kann mir hier einer helfen! Es geht um die Auswertung von virtuellen und physikalischen Hosts. Meine XML-Datei sieht folgendermaßen aus: <?xml version='1.0' encoding="UTF-8" standalone='yes'?> <message> <table name="server_table" > <row><col col_name="Hostname" col_id="u.hostname" >p_host1</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host1</col> <col col_name="status" col_id="u.status" >running</col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" >p_host1</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host2</col> <col col_name="status" col_id="u.status" >running</col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" >p_host2</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host1</col> <col col_name="status" col_id="u.status" >configured</col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" p_host2</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host2</col> <col col_name="status" col_id="u.status" >configured</col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" >p_host2</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host3</col> <col col_name="status" col_id="u.status" >running</col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" >p_host3</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" >v_host4</col> <col col_name="status" col_id="u.status" ></col> <col col_name="Server: data2" col_id="u.data2" >data2</col> </row> <row><col col_name="Hostname" col_id="u.hostname" >p_host4</col> <col col_name="Server: data1" col_id="u.data1" >data1</col> <col col_name="name" col_id="u.name" ></col> <col col_name="status" col_id="u.status" ></col> <col col_name="Server: data2" col_id="u.data2" ></col> </row> </table> </message> Als Endergebnis wünsch ich mir zwei Ausgaben: 1. Ausgabe in einer passenden Tabelle, wie: u.hostname u.name u.status ------------ ------------ ------------ p_host1 v_host1 running p_host1 v_host2 running p_host2 v_host1 configured p_host2 v_host2 configured p_host2 v_host3 running p_host3 v_host4 p_host4 2. Die Ausgabe von "u.hostname" (physikalischer Host) auf der die gegebene "u.name" (virtueller Host) im Status ("u.status") 'running" ist. Dies erledige ich dann durch dynamische Anpassung der SQL-Query - per Variable... z.B. : Eingabe: v_host1 Ausgabe: p_host1 Eingabe: v_host3 Ausgabe: p_host2 Eingabe: v_host4 Ausgabe: ' ' (leer) Bisher habe ich eine Query, die der oben gezeigten Tabelle ansatzweise gleicht, aber ich komme nicht weiter... - Meine Logparser-Kommandozeile lautet: logparser -i:XML -fNames:XPath -fMode:Auto -rootXPath:/message/table/row file:query.sql -o:datagrid - Inhalt von query.sql: select max(case 'u.hostname' when /row/col/@col_id THEN /row/col ELSE '' END) AS u.hostname, max(case 'u.name' when /row/col/@col_id THEN /row/col ELSE '' END) AS u.name, max(case 'u.status' when /row/col/@col_id THEN /row/col ELSE '' END) AS u.status from D:\test\data.xml group by /row/col Ich hoffe auf eure Hilfe! :) files.zip
×
×
  • Neu erstellen...