Element Nummer lesen XSLT

RE-DIK

Mitglied
Hallo,

ich hätte mal eine Frage.

Kann man mit XSLT die Nummer des Elementes lesen?

bsp. /root/element[4]/attribut/@name

durch denn attribut namen müsste ich erfahren welches Element dazugehört
element hat auch @name

mit /root/element[ ]/@name
lese ich den namen des elementes
 
Hi.

Kannst du mal versuchen dein Problem ordentlich / verständlicher zu beschreiben?

Ich verstehe nicht was du mit "Nummer lesen" meinst und auch dein Beispiel kann ich nicht nachvollziehen.

Gruß
 
Hallo nochmal,

also ich möchte gerne wissen ob es möglich ist das 1. , 2. oder 3. Element durch den Attributnamen zu ermitteln.

Struktur
/root/element[4]/attribut/@name

nun ist das so bei mir das jedes Element ein Attribut/@name hat die gleich sind und ich für jedes Element was in der XML vorkommt den @name vom 1. Element ausgegeben wird.

aber wenn ich die Element nummer irgendwie in eine Variable speichen könnte

könnte ich da mit <xsl:value-of select="/root/element[$gepeicherteNummer]/@name"/>
das richtige ausgeben lassen.

ich hoffe das, dass vertändlicher ist.

Danke im vorraus
 
Hi.

Nachdem ich jetzt drüber gegrübelt habe, glaube ich, dass ich weiß was du willst.

Du willst einfach aus einer Knotenmenge das erste, zweite, n-te Element auswählen. Kann das sein?
also ich möchte gerne wissen ob es möglich ist das 1. , 2. oder 3. Element durch den Attributnamen zu ermitteln.
Code:
(/root/element/attribut/@name)[1]
(/root/element/attribut/@name)[2]
...

ich hoffe das, dass vertändlicher ist.
War es nicht wirklich. Warum zeigst du denn nicht was du willst anstatt es (unzulänglich) zu beschreiben?

Gruß
 
danke für die Geduld.

teil aus meine xsl

<xsl:for-each select="/root/element/attribute">
<xsl:variable name="attname" select="@name"/>
<neuelement>
<xsl:value-of select="/root/element[attribute/@name=$attname]/@name"/>
</neuelement>
<neuattribute>
<xsl:value-of select="@name"/>
</neuattribute>
</xsl:for-each>


das Fett markierte ist Fehlerhaft
weil bei meiner xml mehrere attribute den selben Namen haben.
wenn ich diese Bedingung durch eine Zahl ersäzten kann wäre es eindeutig und mir würde der richtige Name des Elementes ausgegeben.

Beispiel des Fehlers:

Element 1 Attribut 11
Element 1 Attribut 12
Element 1 Attribut 13
Element 2 Attribut 24
Element 1 Attribut 11 < ---- Hier müsste jetzt Element 2 sein
Element 2 Attribut 14
Element 3 Attribut 155
Element 1 Attribut 11 <---- Hier müsste jetzt Element 3 sein

usw.

Jetzt zur meiner Frage:

Ist es Möglich wenn man mit der For-each Schleife die attribute durch geht und zu erfahren ob es gerade im 1. Element ist oder im 2. Element ist usw.
 
Hi.

Wenn du nur unterhalb des aktuellen Elternelementes suchen willst, warum machst du das nicht einfach?
Code:
..[attribute/@name=$attname]/@name
Gruß
 
gehört das ".." zum Code? wenn ja geht es bei mir nicht falls nicht. Heißt es doch er soll den Namen vom Attribut ausgeben wegen der for-each Schleife oder nicht?
 
gehört das ".." zum Code?
Ja.

Mir ist gerade aufgefallen, dass man es noch weiter vereinfachen kann:
Code:
../@name
wenn ja geht es bei mir nicht falls nicht.
Ja und nein. ;-]
Heißt es doch er soll den Namen vom Attribut ausgeben wegen der for-each Schleife oder nicht?
Keine Ahnung was du meinst.

Mach mal bitte ein Minimalbeispiel mit einem XML Dokument und Sylesheet.

Gruß
 

Neue Beiträge

Zurück