Zum Inhalt springen

Mehrere Substrings selektieren


Naddel42

Empfohlene Beiträge

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 von flashpixx
Code-Tags eingefügt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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! :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

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;

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...