Frage zu XPath

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi Leute,

ich hoffe ihr könnt mir helfen!
Ich habe folgenden Aufbau eines ChatLogs:


Code:
  <?xml version="1.0" encoding="UTF-8" ?> 
- <LogText>
- <Log Datum="02.11.2005">
  <Datum>02.11.2005</Datum> 
  <Uhrzeit>16:45</Uhrzeit> 
  <IP-Adresse>200.0.0.189</IP-Adresse> 
  <User>Test</User> 
  <Text>Test kommt in den Chat!</Text> 
  </Log>
- <Log>
  <Datum>02.11.2005</Datum> 
  <Uhrzeit>16:46</Uhrzeit> 
  <IP-Adresse>200.0.0.189</IP-Adresse> 
  <User>Test</User> 
  <Text>dies ist ein einfacher Test mit IP und allem drum und dran</Text> 
  </Log>
- <Log>
  <Datum>02.11.2005</Datum> 
  <Uhrzeit>16:51</Uhrzeit> 
  <IP-Adresse>200.0.0.189</IP-Adresse> 
  <User>Steffen</User> 
  <Text>Steffen kommt in den Chat!</Text> 
  </Log>
- <Log>
.......

Nun kann ich über

Code:
ergebnis = document.selectNodes("//Datum[text()='03.11.2005'] | //Datum[text()='03.11.2005']/following-sibling::* | //Datum[text()='03.11.2005']/preceding-sibling::* ");

Alle Datensätze, die am 03.11.05 geschrieben worden sind holen - und nun meine Frage:

Was, wenn ich alle Datensätze vom 3.11.05 um zum Beispiel 11:40 Uhr will???? Oder an einem gewissen Tag von einer gewissen IP?
Wie mache ich das?

Das | steht ja für ODER - aber es gibt kein &....mit and und or klappt es auch nicht - wie mache ich das? Ich dachte an so etwas wie

Code:
ergebnis = document.selectNodes("(//Datum[text()='03.11.2005'] | //Datum[text()='03.11.2005']/following-sibling::* | //Datum[text()='03.11.2005']/preceding-sibling::* ) and (//Uhrzeit[text()='11:40'] | //Uhrzeit[text()='11:40']/following-sibling::* | //Uhrzeit[text()='11:40']/preceding-sibling::* )");");

Aber ich bekomms nicht hin...
 
das and und or muss im test-ausdruck stehen
Code:
//Datum[text()='03.11.2005' or text()='03.11.2005']
usw.
 
Ja, aber ich habe ja 2 Elemente die ich prüfe - ich prüfe ja nicht nur auf Datum!
Hab es herausbekommen, habe es so gelöst (arg ist z.Bsp. "03.11.2005 11:41"):

Code:
// Wenn Datum und Uhrzeit eingegeben wurde
                          else if (args.matches("[0-9]{2}\\.[0-9]{2}\\.[0-9]{4} [0-9]{2}\\:[0-9]{2}")) {
                             ergebnis = document.selectNodes("//Log[self::Datum[text()='" + args.substring(0, args.indexOf(" ")) + "'] or Uhrzeit[text()='" + args.substring(args.indexOf(" ") + 1, args.length()) + "']]/*");
                          }
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben