Naddel42 Geschrieben 27. Oktober 2010 Geschrieben 27. Oktober 2010 (bearbeitet) Guten Morgen! Ich habe hier ein kleines Problemchen mit dem Auslesen des Substringes. Der Code: System.out.println(response); String title = response.substring(response.indexOf("<title>")+7, Response.indexOf("</title>")); System.out.println("\t" +title); Wobei die Erste Zeile folgendes auswirft: <?xml version="1.0" encoding="UTF-8"?> <query> <uuid>2hpcr4lode27fo1g802kbm7occ</uuid> <group-id type="integer">116</group-id> <items type="array"> <item matches="116"> <title>QRE_8103_C205_CNE02092FG</title> <reference-id></reference-id> </item> </items> <response nil="true"/> </query> und der Rest folgendes Selektiert: QRE_8103_C205_CNE02092FG Was auch an sich richtig ist, jedoch manchmal zweimal die Zeile <title>...</title> ausgelesen werden muss, da diese mehrfach in einem Response vorkommen kann. Ich komme hier erlich nicht weiter! Kann mir hier jemand von euch Cracks helfen?!?! Bearbeitet 27. Oktober 2010 von flashpixx Code-Tags eingefügt Zitieren
flashpixx Geschrieben 27. Oktober 2010 Geschrieben 27. Oktober 2010 Da Du XML hast, würde ich nicht mit RegExpr arbeiten. Entweder Du parst den XML Baum oder Du benutzt XQuery um die Einträge direkt zu selektieren. Evtl bietet sich noch Sax an, mit dem Du aus dem XML ein Javaobjekt erzeugen kannst. Dafür benötigst Du aber dann eine XSL für die Objekt/Klassenbeschreibung Zitieren
Naddel42 Geschrieben 27. Oktober 2010 Autor Geschrieben 27. Oktober 2010 WOW! Das ging mal schnell! Danke schonmal dafuer! OK, dann werde ich mal ein wenig herumtesten, ob ich das irgendwie hinbekomme... blutige Anfaengerin.. Habe den Code vorgelegt bekommen, und sollte mal schauen, ob ich den nach deren Wuenschen bearbeiten kann. Hat bisher auch soweit ganz gut geklappt, dank Google! Zitieren
etreu Geschrieben 27. Oktober 2010 Geschrieben 27. Oktober 2010 Die Methode indexOf gibt es noch in einer zweiten Variante: String (Java Platform SE 6). edit oder aber in schick via xml-traversierung und xpath Zitieren
Naddel42 Geschrieben 27. Oktober 2010 Autor Geschrieben 27. Oktober 2010 Das hiesse dann String title = response.substring(fromIndex, title.length(24)) && title.startsWith("QRE") Oder wie?!? Zitieren
etreu Geschrieben 27. Oktober 2010 Geschrieben 27. Oktober 2010 Als neuen Anfang würdest du das letzte Vorkommen von "</title>" merken und als Startindex der Methode übergeben. Könnte dann so in etwa aussehen. List<String>titles = new ArrayList<String>(); int offset = 0; while (response.indexOf("<title>", offset) != -1) { int ende = Response.indexOf("</title>", lastTitle); titles.add(response.substring(response.indexOf("<title>")+7, Response.indexOf("</title>"))); offset = ende; } Zitieren
Naddel42 Geschrieben 28. Oktober 2010 Autor Geschrieben 28. Oktober 2010 Saugeil! Danke! Ich glaube so langsam erschliesst sich mir die Insel! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.