select arbeitet nicht richtig

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • select arbeitet nicht richtig

    Hi,

    Nutze nun AltovaXML 2008 wegen XSL 2.0, trotz des Umstieges werden die Anfragen über select zwar verarbeitet, aber nicht richtig.


    In der Variable all_user sind mehrere wohgeformte XML-Dateien eingelesen, ich möchte nun über <xsl:copy-of select="Bedingung"> nur bestimmte
    Knoten auslesen und in das Zieldokument einfügen. Die Struktur ist entsprechende des Beispiels:

    vereinfachte Struktur(daher sind die Daten doppelt, aber eine abteilung kann noch unterabteilungen besitzen) von all_user(Variable):

    Quellcode

    1. <firma>
    2. <abteilung>
    3. <user id="sm234">
    4. <name>Mueller</name>
    5. <email>s.mueller@xsf.de</email>
    6. <telefon>344425234</telefon>
    7. </user>
    8. <user id="ss245">
    9. <name>Schmidt</name>
    10. <email>s.schmidt@xsf.de</email>
    11. <telefon>348768769</telefon>
    12. </user>
    13. </abteilung>
    14. <abteilung>
    15. <abteilung>
    16. <user id="sm234">
    17. <name>Mueller</name>
    18. <email>s.mueller@xsf.de</email>
    19. <telefon>344425234</telefon>
    20. </user>
    21. <user id="ss245">
    22. <name>Schmidt</name>
    23. <email>s.schmidt@xsf.de</email>
    24. <telefon>348768769</telefon>
    25. </user>
    26. </abteilung>
    27. <user id="sm234">
    28. <name>Mueller</name>
    29. <email>s.mueller@xsf.de</email>
    30. <telefon>344425234</telefon>
    31. </user>
    32. <user id="ss245">
    33. <name>Schmidt</name>
    34. <email>s.schmidt@xsf.de</email>
    35. <telefon>348768769</telefon>
    36. </user>
    37. </abteilung>
    38. <firma>
    Alles anzeigen


    Für die Bedingung habe ich schon sämtliche Formulierungen probiert:

    1. select="$all_user/*" ---> geht und kopiert alle Daten
    2. select="$all_user/*/*" ---> geht und kopiert die Daten einer Ebene tiefer
    3. select="$all_user/abteilung/*" ---> geht
    4. select="$all_user/abteilung/abteilung/*" ---> geht nicht
    5. select="$all_user/abteilung//email/text()" ---> geht nicht
    6. select="$all_user/abteilung/user/*" ---> geht nicht


      Leider ist eine Auswahl von speziellen Knoten mit * nicht möglich. Als Prozessor nutze ich AltovaXML 2008. FürTipps und Ideen bin ich dankbar.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Jevo ()

  • Hi,
    ist das oben nur ein Ausschnitt oder hast du falsch geschlossen? So wird <firma> nicht geschlossen.
    Jedenfalls ist der Pfad schlichtweg falsch, den du mit XPATH versuchst du adressieren.

    Warum drittens klappt, kann ich nicht nachvollziehen. Eigentlich muss das $all_user/firma/abteilung/* sein.
    Und auch bei den anderen fehlt schlichtweg Firma. Fügst du das ein funktionierts (getestet mit dem Firefox XSLT Renderer)
  • Hi,

    hast recht, dass die Anfragen nicht korrekt sind, fiel mir gestern auch noch auf. Ich hatte nämlich bei der Variable noch das Firma Element hinzugefügt, dass das Document wohlgeformt ist. Hab die Anfragen noch geändert, einfach hinter $user_all // eingefügt. Zusätzlich habe ich auch die Anfragen noch absoute probiert, leider ohne Erfolg. Mir kommt es so vor, dass der Processor nicht richtig arbeitet. Mit Liquid XML habe ich die xPath-Anfragen überprüft, ist alles korrekt. Beim Debuggen überspringt der Processor, dann den zu jeweiligen Punkt.

    Hab schon mehrere Processoren verwendet! Bin schon am Verzweifeln!