droom: XPath Frage

Ich habe folgende Auschnitte in einer XML-Datei:
1)<field id="#9">
    <text id="#10">
      <con>Text im Blau</con>
    </text>
  </field>

2)<page id="#9">
    ...
    <text id="#10">
      <con>Text im Rot</con>
    </text>
    ...
  </page>

Nun mit XSL bearbeite ich diese XML Datei:

<xsl:template match="text">
   </xsl:choose>
   <xsl:when test="parent::.=Field">
      <p><font color="blue"><xsl:value-of select="con" /></font></p>
    </xsl:when>
    xsl:otherwise
      <p><font color="red"><xsl:value-of select="con" /></font></p>
    </xsl:otherwise>
   </xsl:choose>
 </xsl:template>

Wenn XSL der Text-Knoten arbeitet, soll wenn der direkte Vater vom Text-Knoten Field ist, der Text im blau schreiben und sonst in rot.

Ich habe wie oben geschrieben probiert aber es funktionniert nicht. Wie kann ich sowas in XPath machen "Wenn der Vater des aktuellen Knoten = Field ist, dann ..."?

  1. Hi,

    ich versuch verzweifelt irgendwo eine XPath-Software auf meinem Rechner aufzutreiben, finde aber keine und kann das daher nicht ausprobieren.
    Syntaktisch stochere ich etwas im Nebel, aber helfen könnte etwa:
    name(parent)='Field', vielleicht auch ohne '

    MfG
    Rouven

    --
    -------------------
    Inter Arma Enim Silent Leges  --  Cicero
    1. Hallo Rouven!

      Leider funktionniert es nicht. Jemand meinte zu mir, ich solle diese ausprobieren: /descendant-or-self::text[parent::name()="field"] aber es klappte auch nicht.

    2. Tach Rouven,

      ich versuch verzweifelt irgendwo eine XPath-Software auf meinem Rechner aufzutreiben, finde aber keine und kann das daher nicht ausprobieren.

      Probiere es mal mit dem XPath builder oder der Firefox-Extension XPath Checker.

      Man liest sich,
      svg4you

      1. Hallo "svg4you"

        Ich wollte schon länger fragen: hat dein Nameswechsel einen Grund?

        Grüße
        Thomas

        1. Tach Thomas,

          Hallo "svg4you"

          Ich wollte schon länger fragen: hat dein Nameswechsel einen Grund?

          Vielleicht eine Art Web-Identität 2.0, die frühere Egotrips hinter sich lässt ...

          Man liest sich,
          svg4you

  2. Hallo,

    Nun mit XSL bearbeite ich diese XML Datei:

    <xsl:template match="text">
       </xsl:choose>

    ^^^^
    so kann das bestimmt nicht funktionieren

    xsl:choose

    <xsl:when test="parent::.=Field">

    ^^^^
    und so auch nicht.

    <xsl:when test="parent::field">

    <p><font color="blue"><xsl:value-of select="con" /></font></p>

    und das ist auch schlimm, <font> sollte man wirklich aussterben lassen.
    <p style="color:blue;"><xsl:value-of select="con" /></p>

    ...

    Grüße
    Thomas

    1. Hallo Thomas!

      <xsl:when test="parent::field"> ist richtig. Danke ;-)
      Hätte geschwört, dass ich dieses auch ausprobiert hatte. na ja ...