[GastForen Programmierung/Entwicklung FileMaker Daten gruppieren XML/XSLT

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Daten gruppieren XML/XSLT

MarioF
Beiträge gesamt: 149

16. Feb 2017, 19:49
Beitrag # 1 von 4
Bewertung:
(7704 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin,
ich will über eine XSLT Daten gruppieren. Jetzt habe ich folgendes:
###
<xsl:template match="fmp:ROW">
<produkt>
<artikel><xsl:value-of select="fmp:COL[1]/fmp:DATA"/></artikel>
<bezeichnung><xsl:value-of select="fmp:COL[2]/fmp:DATA"/></bezeichnung>
<art><xsl:value-of select="fmp:COL[3]/fmp:DATA"/></art>
</produkt>
</xsl:template>
###

Jetzt habe ich versuch, alles über for-each-group laufen zu lassen:
###
<xsl:for-each-group select="fmp:COL[1]/fmp:DATA" group-adjacent="@artikel">
<group>
<artikel><xsl:value-of select="."/></artikel>
<xsl:for-each select="fmp:COL[2]/fmp:DATA">
<bezeichnung><xsl:value-of select="."/></bezeichnung>
<xsl:variable name="pos" select="position()" />
<art><xsl:value-of select="../../fmp:COL[3]/fmp:DATA[$pos]"/></art>
</xsl:for-each>
</group>
</xsl:for-each-group>
###

Leider bekomme ich in der xml-Ausgabe nur
<root>
<katalog>
<produkt/>
<produkt/>
...
</katalog>
</root>

Wie muss for-each-group aussehen, damit es klappt?
---
Viele Grüße
Mario
X

Daten gruppieren XML/XSLT

JensTeich
  
Beiträge gesamt: 580

7. Mär 2017, 11:33
Beitrag # 2 von 4
Beitrag ID: #556099
Bewertung:
(7587 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
for-each-group ist xslt 2.0 denke ich. FileMaker kann nur xslt 1.0.

Da kann man gruppieren mit der Muench Methode (https://en.wikipedia.org/wiki/XSLT/Muenchian_grouping).

LG
Jens
__
jens teich, filemaker certified developer

FileMaker Konferenz Oktober 2017 Salzburg!

FileMaker Training per TeamViewer, schnelle Hilfe vom Profi!


als Antwort auf: [#555683]

Daten gruppieren XML/XSLT

MarioF
Beiträge gesamt: 149

8. Mär 2017, 20:03
Beitrag # 3 von 4
Beitrag ID: #556200
Bewertung:
(7543 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo,
ja, Muench Methode...
Ich lasse jetzt FM erst mal außen vor. Ich habe jetzt dieses XML-Beispiel
Code
<?xml version="1.0" encoding="UTF-8" ?> 
<?xml-stylesheet type="text/xsl" href="group.xsl"?>
<FMPDSORESULT>
<ROW>
<Abschnitt>Abschnitt 1</Abschnitt>
<Titel>X-25-78</Titel>
</ROW>
<ROW>
<Abschnitt>Abschnitt 1</Abschnitt>
<Titel>X-25-80</Titel>
</ROW>
<ROW>
<Abschnitt>Abschnitt 1</Abschnitt>
<Titel>X-25-81</Titel>
</ROW>
<ROW>
<Abschnitt>Abschnitt 2</Abschnitt>
<Titel>WW-25-78</Titel>
</ROW>
<ROW>
<Abschnitt>Abschnitt 2</Abschnitt>
<Titel>WX-25-78</Titel>
</ROW>
</FMPDSORESULT>

Dazu diese XSLT
Code
<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
version="1.0"
encoding="UTF-8"
indent="yes"/>

<xsl:template match="/">
<Root>
<Projekt>
<xsl:apply-templates select="FMPDSORESULT/ROW"/>
</Projekt>
</Root>
</xsl:template>

<xsl:key name="groupKey" match="ROW" use="Abschnitt" />

<xsl:template match="ROW">
<Abschnitt>

<xsl:for-each select="ROW[count(. | key('groupKey', Abschnitt)[1]) = 1]">
<xsl:sort select="Abschnitt" data-type="text"/>
<xsl:value-of select="Abschnitt" />
<xsl:for-each select="key('groupKey', Abschnitt)">
<xsl:sort select="Titel" />
<xsl:value-of select="Titel" />
</xsl:for-each>
</xsl:for-each>

</Abschnitt>
</xsl:template>
</xsl:stylesheet>


Ich habe mich dabei an diesem Beispiel gehalten http://www.beacontechnologies.com/...he-muenchian-method/
Trotzdem bekomme ich kein Ergebnis. Hab ich etwas übersehen?
---
Viele Grüße
Mario


als Antwort auf: [#556099]

Daten gruppieren XML/XSLT

MarioF
Beiträge gesamt: 149

9. Mär 2017, 09:20
Beitrag # 4 von 4
Beitrag ID: #556207
Bewertung:
(7501 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
So klappt es
Code
<xsl:key name="groupKey" match="ROW" use="Abschnitt" /> 

<xsl:template match="FMPDSORESULT">
<xsl:for-each select="ROW[count(. | key('groupKey', fmp:Abschnitt)[1]) = 1]">
<xsl:sort select="Abschnitt" />
<xsl:value-of select="Abschnitt" />
<xsl:for-each select="key('groupKey', Abschnitt)">
<xsl:sort select="Titel" />
<xsl:value-of select="Titel" />
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

---
Viele Grüße
Mario


als Antwort auf: [#556200]
X

Aktuell

Veranstaltungen

Hier können Sie Ihre Anlässe eintragen, welche einen Zusammenhang mit den Angeboten von HilfDirSelbst.ch haben. Die Einträge werden moderiert freigeschaltet. Dies wird werktags üblicherweise innert 24 Stunden erfolgen. pdf-icon Hier eine kleine Anleitung.

Veranstaltungen
22.05.2019 - 23.05.2019

Effiziente Medienproduktion mit InDesign und Photoshop

München
Mittwoch, 22. Mai 2019, 09.30 Uhr - Donnerstag, 23. Mai 2019, 17.30 Uhr

Schulung, Seminar

Wie arbeiten Sie mit Colormanagement in InDesign? Wie gelangen Sie rascher zu einer flexiblen Dateivorlage? Welche Prozesse im Umgang mit Texten, Bildern oder Tabellen lassen sich eleganter gestalten, welche automatisieren? Wir zeigen Ihnen, wie Sie mit Profiwerkzeugen für Typo und Layout deutlich schneller und effizienter arbeiten können – auch im Team und mit Kunden!

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/zweitaegige-weiterbildung-zum-next-generation-publisher/

Zweitägige Weiterbildung zum Next Generation Publisher
Veranstaltungen
23.05.2019

München
Donnerstag, 23. Mai 2019, 09.30 Uhr

Schulung, Seminar

Die Schulung richtet sich an erfahrene Designer/-innen und PrePress-Profis, die mit InDesign CS6 oder CC arbeiten. Wir zeigen Ihnen, wie Sie mit Profiwerkzeugen für Typo und Layout deutlich schneller und effizienter arbeiten können – auch im Team und mit Kunden! Wertvolle Tipps aus der Praxis runden die Schulung ab, damit Sie auf anspruchsvolle Aufgaben eine Antwort mit InDesign kennen.

Ja

Organisator: Cleverprinting.de

https://www.cleverprinting.de/schulungen/indesign-schulung-next-generation/

InDesign Schulung für Fortgeschrittene