[GastForen Programme Print/Bildbearbeitung Adobe InDesign Skriptwerkstatt Bedingte For-Schleife um bestimmtes XML Element durchzulaufen

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Bedingte For-Schleife um bestimmtes XML Element durchzulaufen

JonesRidder
Beiträge gesamt: 85

4. Mai 2011, 11:22
Beitrag # 1 von 3
Bewertung:
(3019 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,

stehe gerade total auf dem Schlauch und kriege meine For-Schleife nicht gebacken (JavaScript, ID CS5, Windows).

XML-Stuktur
Code
<dataroot> 
<Artikel Seitenumfang="1" Rubik="NormalRubrik" Sortierung="1">
...
</Artikel>
...
<Artikel Seitenumfang="" Rubrik="SpecialRubrik" Sortierung="60">
<Ueberschrift>Hier steht die Überschift</Ueberschrift>
<Text>Hier steht de Text</Text>
<Bilder>
<Bild href="[BILDPFAD]" Sortierung="1"></Bild>
<Untertitel>Untertitel1</Untertitel>
<Bild href="[BILDPFAD]" Sortierung="2"></Bild>
<Untertitel>"Untertitel2"</Untertitel>
<Bild href="[BILDPFAD]" Sortierung="3"></Bild>
<Untertitel>"Untertitel3"</Untertitel>
<Bild href="[BILDPFAD]" Sortierung="4"></Bild>
<Untertitel>"Untertitel4"</Untertitel>
<Bild href="[BILDPFAD]" Sortierung="5"></Bild>
<Untertitel>"Untertitel5"</Untertitel>
<Bild href="[BILDPFAD]" Sortierung="6"></Bild>
<Untertitel>"Untertitel6"</Untertitel>
</Bilder>
</Artikel>
</dataroot>


Es soll folgendes bewirkt werden
Es sollen alle Bild und Untertitel Elemente verarbeitet werden, wenn das Attribut "Rubrik" im Element "Artikel" "SpecialRubrik" enthält,

Das klappt nicht ...
Code
for (var _enterBild = 0; _enterBild < _artikel.evaluateXPathExpression("//Bild").length; _enterBild++) { .... } 

weil er hier ALLE "Bild" Elemente im gesamten XML durchläuft (er soll aber nur die durchlaufen, die Rubrik="SpecialRubrik" sind).

Das klappt auch nicht ...
Code
for (var _enterBild = 0; _enterBild < _artikel.evaluateXPathExpression("//Bild").length && _artikel.xmlAttributes.itemByName("Rubrik").value == "SpecialRubrik"; _enterBild++) { .... } 


Hat jemand eine Idee?

Gruß
J.R.

(Dieser Beitrag wurde von JonesRidder am 4. Mai 2011, 11:33 geändert)
X

XPATH AUSDRUCK Bedingte For-Schleife um bestimmtes XML Element durchzulaufen

JonesRidder
Beiträge gesamt: 85

4. Mai 2011, 12:13
Beitrag # 2 von 3
Beitrag ID: #470589
Bewertung:
(2986 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Vereinfacht ausgedrückt:
Wie muss der XPath Ausdruck lauten, wenn ich in die For Schleife dieses sagen möchte:
Wenn Element "<Artikel>" das Attribut "<Rubrik>" mit dem Inhalt "SpcialRubrik" besitzt,
dann zähle die Anzahl der "<Bild>" Elemente im Container Element "<Bilder>" zusammen (in Fall vom vorherigen Post soll dann da "6" Elemente rauskommen - oder als Index "5" - da 6 "<Bild href= ..../>" Elemente vorhanden sind.

Das klappt auch nicht:
Code
_artikel.evaluateXPathExpression("Artikel[@Rubrik='SpecialRubrik']/Bild").length 

(er geht nicht in die For rein, weil der Ausdruck anscheinend fehlerhaft/falsch ist) ....

Gruß
J.R.


als Antwort auf: [#470569]

XPATH AUSDRUCK Bedingte For-Schleife um bestimmtes XML Element durchzulaufen

JonesRidder
Beiträge gesamt: 85

4. Mai 2011, 13:26
Beitrag # 3 von 3
Beitrag ID: #470613
Bewertung:
(2966 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Danke es hat sich eledigt - habe es hinbekommen ...
http://de.wikipedia.org/wiki/XPath#Beispiel
Da kann man sich das zusammenbauen (zusammendenken)
Gruß
J.R.


als Antwort auf: [#470589]