Hallo,
ich bin absoluter Einsteiger was JDOM angeht.
Meine Aufgabe ist es, eine XML Datei auszulesen, in der bestimmte gescannte IP Adressen und zu jeder IP Adresse Security Schwachstellen aufgelistet werden.
So weit so gut
Ich habe es bis jetzt geschafft die XML Datei einzulesen und mir die Datenfelder anzuzeigen die für mich relevant sind. Mein eigentliches Problem beginnt dann ab Zeile 45 im Quellcode.
Zu jeder IP Adresse gibt es mehrere Schwachstellen. Ich habe also begonnen eine for Schleife zu basteln, die mir jede Stelle ausgeben soll. Die Schleife läuft jetzt aber nur einfach so oft durch wie es Schwachstellen gibt. Auf dem Display wird dann einfach x mal der Inhalt der ersten Schwachstelle angezeigt.
Ich weis jetzt leider nicht, welche Möglichkeiten JDOM bietet die Schwachstellen in ein Array oder List zwischenzuspeichern und mit allen Details auszugeben. Vieleicht gibt es aber ja auch einfach die Möglichkeit meine Variable "i"durchzureichen und jedesmal den Inahlt an der "i"ten Stelle auszugeben.
Wie gesagt ich bin noch absoluter Anfänger und für jede Hilfe super dankbar!
Viele Grüße Björn
ich bin absoluter Einsteiger was JDOM angeht.
Meine Aufgabe ist es, eine XML Datei auszulesen, in der bestimmte gescannte IP Adressen und zu jeder IP Adresse Security Schwachstellen aufgelistet werden.
So weit so gut
Ich habe es bis jetzt geschafft die XML Datei einzulesen und mir die Datenfelder anzuzeigen die für mich relevant sind. Mein eigentliches Problem beginnt dann ab Zeile 45 im Quellcode.
Zu jeder IP Adresse gibt es mehrere Schwachstellen. Ich habe also begonnen eine for Schleife zu basteln, die mir jede Stelle ausgeben soll. Die Schleife läuft jetzt aber nur einfach so oft durch wie es Schwachstellen gibt. Auf dem Display wird dann einfach x mal der Inhalt der ersten Schwachstelle angezeigt.
Ich weis jetzt leider nicht, welche Möglichkeiten JDOM bietet die Schwachstellen in ein Array oder List zwischenzuspeichern und mit allen Details auszugeben. Vieleicht gibt es aber ja auch einfach die Möglichkeit meine Variable "i"durchzureichen und jedesmal den Inahlt an der "i"ten Stelle auszugeben.
Wie gesagt ich bin noch absoluter Anfänger und für jede Hilfe super dankbar!
Viele Grüße Björn
Java:
package XMLEinlesen;
import java.util.Iterator;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
public class Reader {
public static void main( String[] args ) throws Exception
{
Document doc = new SAXBuilder().build( "Host_Data.xml" );
Element Info = doc.getRootElement();
System.out.println("Scaninformationen:");
Element ScanInfo = Info.getChild( "Jobs" );
Attribute ScanName = ScanInfo.getAttribute( "ScanName" );
System.out.println( "ScanName: " + ScanName.getValue() );
Attribute StartTime = ScanInfo.getAttribute( "StartTime" );
System.out.println( "StartTime: " + StartTime.getValue() );
Attribute EndTime = ScanInfo.getAttribute( "EndTime" );
System.out.println( "EndTime: " + EndTime.getValue() );
System.out.println();
System.out.println("Systeme mit Schwachstellen:");
Element HostInfo = Info.getChild( "HostData" ).getChild("Host");
Attribute IPAdress = HostInfo.getAttribute( "IPAddress" );
System.out.println( "IPAddress: " + IPAdress.getValue() );
Attribute OSName = HostInfo.getAttribute( "OSName" );
System.out.println( "OSName: " + OSName.getValue() );
Attribute DNSName = HostInfo.getAttribute( "DNSName" );
System.out.println( "DNSName: " + DNSName.getValue() );
Attribute NBName = HostInfo.getAttribute( "NBName" );
System.out.println( "NBName: " + NBName.getValue() );
System.out.println("Schwachstellen:");
Element Vulns =Info.getChild( "HostData" ).getChild("Host").getChild("VulnsFound");
for(int i = 0; i < Vulns.getChildren().size(); i++)
{
Element VulnsInfo = Vulns.getChild("Vuln");
Attribute id = VulnsInfo.getAttribute( "id" );
Attribute VulnName = VulnsInfo.getAttribute("VulnName");
Element RiskInfo = Vulns.getChild("Vuln").getChild("Risk");
String risk = RiskInfo.getText();
Element CVEInfo = Vulns.getChild("Vuln").getChild("CVE");
String CVE = CVEInfo.getText();
System.out.println( "ID: " + id.getValue()+ " VulnName: "+ VulnName.getValue()+ " Risklevel: "+risk +" CVE Info: "+ CVE);
}
}
}
Zuletzt bearbeitet: