ManfredJ: XSL: count auf mehreren Ebenen

Hallo zusammen Ich möchte gerne Interviews auswerten und spezielle Elemente aufgrund mehrerer Parameter auszählen. Im untenstehenen Beispiel etwa: wie viele Ereignisse (event) gibt es, die 1. mit dem Code "1-po" UND "2-di" ausgezeichnet wurden, UND die 2. "So-Interviews" sind (und nicht Mo-Interviews, Di-Interviews ... )

Auf der ersten Ebene der Ereignisse habe ich kein Problem:

<xsl:value-of select="count(//event[contains(.,'1-po') and contains(.,'2-di')] )"/>

Aber die UND-Verknüpfung mit den Meta-Informationen im Head gelingt mir nicht.

Hat jemand eine Idee für mich?

Herzlichen Dank vorab

Manfred

<?xml version="1.0" encoding="UTF-8"?>
<basic-transcription>
    <head>
        <meta-information>
            <transcription-name>So-Interviews</transcription-name>
        </meta-information>
    </head>
    <basic-body>
        <events>
            <event>1-po 3-wo 3-ze 3-ve ro</event>
        </events>
        <events>
            <event>1-po 2-di 3-fe ro</event>
            <event>1-th 3-wo </event>
            <event>1-po 2-af 3-ze 3-wo </event>
        </events>
        .....
    </basic-body>
</basic-transcription>
  1. Ups, das Beispiel oben kann man ja wirklich nicht verstehen ...

    Ich möchte das Problem (XSL Auswertung unter Einbezug von Metadaten) noch einmal an einem anderen (hoffentlich besseren) Beispiel erläutern: der Bereich basic-transcription/meta enthält Metadaten (Informationen zu verschiedenen Teilnehmern einer Gruppendiskussion), der Body (basic-transcription/body) enthält die Diskussionsbeiträge der Teilnehmer, gegliedert in Sequenzen (Events) mit speziellen Codes.

    Wie kann man nun auszählen, wie viele Sequenzen (beispielsweise mit dem Code <event>1-po</event> ) von männlichen Teilnehmern stammen (siehe <sex value="m"/> in <meta>) und wie viele von weiblichen? Oder wie viele von Teilnehmern über 30 Jahre und wie viele von Teilnehmern unter 30?

    <basic-transcription>
        <meta>
            <speakertable>
                <speaker id="SPK0">
                    <abbreviation>LUC</abbreviation>
                    <sex value="m"/>
                    <age date="1980-03-07">07.03.1980</age>
                </speaker>
                <speaker id="SPK1">
                    <abbreviation>IRAV</abbreviation>
                    <sex value="m"/>
                    <age date="1990-03-07">07.04.1990</age>
                </speaker>
                <speaker id="SPK2">
                    <abbreviation>NAT</abbreviation>
                    <sex value="f"/>
                    <age date="1992-04-17">17.04.1992</age>
                </speaker>
            </speakertable>
        </meta>    
        <body>
            <tier speaker="SPK0">
                <event start="T27" end="T31">1-po 2a-zel </event>
                <event start="T32" end="T33">1-po 2a-ver </event>
                <event start="T52" end="T68">2a-ver 3a-ab</event>
            </tier>
            <tier speaker="SPK1">
                <event start="T208" end="T209">1-po 2a-zel </event>
                <event start="T33" end="T34">2a-ver 3a-ab </event>
                <event start="T70" end="T48">1-th 2a-zel 1-th 2a-ver</event>
            </tier>
            <tier speaker="SPK2">
                <event start="T31" end="T32">1-po 2a-zel </event>
                <event start="T62" end="T64">2a-koc 2a-sac 3a-in 3b-fin </event>
            </tier>
        </body>
    </basic-transcription>
    

    Hat jemand eine Idee? Herzlichen Dank für eure Hilfe.

    ManfredJ.