Gab: XPath-Abfrage

Hallo allerseits,

ich habe eine xml-Datei folgender Form:
 <data>
  <struct>
     <var name="stenogramme">
      <array length="2">
       <struct>
        <var name="event">
         <number>6635</number>
        </var>
        <var name="tor">
         <array length="1">
          <struct>
           <var name="ereignis">
            <string>tor</string>
           </var>
           <var name="status_spiel">
            <string>hz1</string>
           </var>
           <var name="ereignis_min">
            <string>2</string>
           </var>
           <var name="tore1">
            <string>0</string>
           </var>
           <var name="tore2">
            <string>1</string>
           </var>
           <var name="vereinsname">
            <string>Steaua Bukarest</string>
           </var>
           <var name="spieler_1">
            <string>Sorin Ghionea</string>
           </var>
          </struct>
         </array>
        </var>
       </struct>
       <struct>
        <var name="event">
         <number>6640</number>
        </var>
        <var name="tor">
         <array length="1">
          <struct>
           <var name="ereignis">
            <string>torelf</string>
           </var>
           <var name="status_spiel">
            <string>hz1</string>
           </var>
           <var name="ereignis_min">
            <string>12</string>
           </var>
           <var name="tore1">
            <string>0</string>
           </var>
           <var name="tore2">
            <string>1</string>
           </var>
           <var name="vereinsname">
            <string>Arsenal London</string>
           </var>
           <var name="spieler_1">
            <string>Gilberto Silva</string>
           </var>
          </struct>
         </array>
        </var>

</struct>

</array>
     </var>
    </struct>
 </data>
und habe nun folgendes Problem:
ich will gezielt den Child-String von <var name="ereignis_min"> einlesen unter Auswahl der Nummer des events. Ich muss bei XPath also folgenden Bereich mitabfragen:

  • <var name="event">
         <number>6635</number>
      </var>
    Wie aber mache ich das?

Danke
Gab

  1. Hallo!
    Habs selbst gefunden.

    Die XPath-Anfrage muss folgendes enthalten:
    ..var[child::number="6635"]/../var/...

    Grüße
    Gab

  2. Tach Gab,

    ich will gezielt den Child-String von <var name="ereignis_min"> einlesen unter Auswahl der Nummer des events. Ich muss bei XPath also folgenden Bereich mitabfragen:

    • <var name="event">
           <number>6635</number>
        </var>
      Wie aber mache ich das?

    Ausgehend vom Wurzelknoten z. B. so:

    <xsl:value-of select="//var[@name='event' and child::number/text()='6635']/following-sibling::var[@name='tor']//var[@name='ereignis_min']/string/text()"/>

    Damit wird 2 erhalten.

    Man liest sich,
    svg4you

  3. Hallo,

    Mal eine neugierige Frage:

    ich habe eine xml-Datei folgender Form:
    <data>
      <struct>
         <var name="stenogramme">
          <array length="2">

    Das sieht für mich sehr nach XML-RPC aus, gäbe es nicht das in XML-RPC nicht erlaubte Element var und das length-Attribut des array-Elementes. Ist das nun fehlerhaftes XML-RPC, das Du da bekommst oder eine Weiterentwicklung von XML-RPC? Warum nicht gleich XML-RPC benutzen, für das es Libraries in den meisten Programmiersprachen gibt?

    Tim