Hallo Wissende,
ich stehe vor einem Sortierproblem und für mich gibt es nun 2 Fragen:
- geht das überhaupt (habe selber noch nichts gefunden)
- wenn ja WIE
Es gibt eine XML-Datei mit:
- kontaktliste/kontakt/firma
- kontaktliste/kontakt/name/nachname
- kontaktliste/kontakt/name/vorname
- usw.
Ich muß nun die Inhalte der Elemente …/firma und …/name/nachname (…vorname) in der Sortierung mischen.
Zwischen den Nachnamen „Albrecht“ und „Cornelius“ soll also die Firma „Blumenerde“ erscheinen.
Das stellt sich für mich im Augenblick als ein großes Problem dar und ich hoffe, daß mir jemand von Euch helfen kann.
Hoffentlich nicht mit dem Hinweis, daß ich die xml-Struktur ändern soll und die Firma in den Nachnamen schreiben soll 
Vielen Dank!
Thomas
Hallo Thomas,
Benutzt du ein XSLT zur Ausgabe? (Mit css kenne ich mich nicht aus)
Wenn ja, schau dir mal das an:
Im for-each werden die Knoten selektiert, die ausgegeben werden sollen. Hier alle Elemente „tool“ die im Knoten „toolsList“ des aktuellen Elementes sind und die das Kriterium [] erfüllen, selektiert. „Titel“ ist ein Kind von „tool“, und nach dem wird sortiert. Danach wird das template gerufen, das die Inhalte der Knoten ausgeben soll.
mfg
Dirk
Hallo Dirk!
Vielen Dank erst einmal, aber so richtig kann ich das immer noch nicht nachvollziehen.
Wenn ich die Firma weglassen kann und z.B. nach Nachname und Vorname sortiere (auskommentiertes SORT in der xsl-Datei), dann ist mir alles klar.
Aber ich bekomme die Firma eben leider nicht in die Nachnamen mit „reingemischt“.
Ich glaube fast, daß das gar nicht geht ???
Vielleicht hilft ja auch das konkrete Beispiel (ich habe einen Auszug angehängt):
-
Inhalt der xsd-Datei :
…
-
Inhalt der xsl-Datei :
,
()
…
Ich hoffe, daß mir vielleicht doch noch jemand auf die Sprünge helfen kann.
Im Internet und den Büchern die ich habe, bin ich bisher leider auch noch nicht abschließend fündig geworden.
Ich fürchte fast immer mehr, daß ich die Struktur für Name und Firma noch mal ändern muß.
Vielen Dank!
Thomas
Hallo Thomas,
Hatte ich so nicht verstzanden. mangels Daten (und Zeit) ein Vorschlag:
Hast du mal was XML? (Hab keine Lust das xsd zu „lernen“)
Du willst also sortieren nach „name/nachname“ oder „firma“. Da es sich wohl um ein Choice handelt ist doch nur immer eines belegt oder?
Das erste „sort“ fasst die beiden möglichen Texte zu einem zusammen, das sollte dann auch ein Sortieren nach beidem ermöglichen. concat liefert also „ein Feld“ in dem wahlweise name/Nachname oder „firma“ steht. Danach zur Sicherheit der zweite schlüssel zum Sortieren.
Weiteres unter:
http://xml.klute-thiemann.de/w3c-de/REC-xslt-2002031…
mfg
Dirk
Hallo Dirk,
VIELEN DANK!!!
Das war der mir fehlende Hinweis und das hatte ich bisher auch noch nirgendwo gelesen bzw. gesehen.
Mit großen Augen war meine Reaktion „concat() gibt’s hier“.
Mir waren in der Literatur bei sort bisher nur einfache Ausdrücke begegnet.
mfg
Thomas
Hallo Thomas
Da freu ich mich auch. Ich hatte das ja nicht probiert. Grundsätzlich dürfte ein select alles zulassen, also auch xPath, Formeln und so. Das eröffnet Möglichkeiten…
mfg
Dirk