Autor |
Nachricht |
c0la
Threadersteller
Dabei seit: 23.07.2005
Ort: thüringen
Alter: 40
Geschlecht:
|
Verfasst Mo 25.07.2005 12:20
Titel xpath - doppelte einträge ausschließen, hinzufügen |
|
|
Hallo miteinander,
ich stehe gerade vor einem ziehmlichen Problem. Zuerst einmal schildere ich euch die XML-Struktur in etwa:
Code: |
<article>
<template>hallo</template>
<info>infotext</info>
</article>
<article>
<template>hallo</template>
<info>textirgenwas</info>
</article>
<article>
<template>huhu</template>
<info>gutentag</info>
</article>
|
Ich möchte also zB für jedes <template> die dazugehörige <info> ausgeben - das ist natürlich nicht das Problem. Eher das, dass ich mit
Code: |
<xsl:for-each select="//article">
<xsl:value-of select="template">
<xsl:value-of select="info">
|
natürlich bei doppelten <template>'s auch 2 ausgebe, was aber nicht erwünscht ist. Wunsch ist bei doppelten Einträgen nur einmal das <template> zu haben und die unterschiedlichen <info>'s dazu.
Ich habe gehört man müsse in diesem Loop bei der <template>-Abfrage die doppelten ausschließen und die dazugehörigen <info>'s hinzufügen - Frage, WIE?
Hoffe auf rege Hilfe
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 25.07.2005 12:33
Titel
|
|
|
Vielleicht mitner if-Abfrage (hab ich jetz net getestet):
<xsl:if test="count(descendant::template) > 1">
[...]
</xsl:if>
Zuletzt bearbeitet von am Mo 25.07.2005 12:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
c0la
Threadersteller
Dabei seit: 23.07.2005
Ort: thüringen
Alter: 40
Geschlecht:
|
Verfasst Mo 25.07.2005 13:26
Titel
|
|
|
hallo,
leider funktioniert das nicht - ich kann auch nicht sagen warum denn ich stehe noch selbst ganz am anfang.
Code: |
<table border="1">
<xsl:for-each select="//article">
<tr>
<th><xsl:if test = "count(descendant::template) > 1">
<xsl:value-of select="template" /><br/>
<xsl:value-of select="info" />
</xsl:if></th>
</tr>
</xsl:for-each>
</table>
|
damit wird leider garnichts ausgegeben.
zur veranschaulichung, nochmal wie das endergebnis (xml-struktur vom ersten post) aussehen soll:
Code: |
hallo
infotext
textirgenwas
huhu
gutentag
|
vielen dank aber schonmal
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 25.07.2005 13:51
Titel
|
|
|
Wie sieht das denn aus wenn mehr als ein <template> vorhanden ist? Stehn die so unternander weg?
<template>
<info>
<template>
<info>
oder wad?
|
|
|
|
|
c0la
Threadersteller
Dabei seit: 23.07.2005
Ort: thüringen
Alter: 40
Geschlecht:
|
Verfasst Mo 25.07.2005 13:55
Titel
|
|
|
ganz genau, mit
<xsl:for-each select="//article">
<xsl:value-of select="template">
<xsl:value-of select="info">
</xsl:for-each>
kommt das:
hallo
infotext
hallo
textirgenwas
huhu
gutentag
mit der geposteten if-anweisung, leider garnichts.
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 25.07.2005 13:56
Titel
|
|
|
Mach das:
Code: | <?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"
indent="yes"
omit-xml-declaration="yes"
encoding="ISO-8859-1"/>
<xsl:template match="/">
<table border="1">
<xsl:for-each select="descendant::article">
<tr>
<th>
<xsl:value-of select="./template"/><br/>
<xsl:for-each select="descendant::info">
<xsl:value-of select="."/><br/>
</xsl:for-each>
</th>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet> |
Zuletzt bearbeitet von am Mo 25.07.2005 13:56, insgesamt 1-mal bearbeitet
|
|
|
|
|
c0la
Threadersteller
Dabei seit: 23.07.2005
Ort: thüringen
Alter: 40
Geschlecht:
|
Verfasst Mo 25.07.2005 14:20
Titel
|
|
|
ich bin sehr dankbar dass ich hier hilfe finde, aber das funzt leider auch nicht.
ist genau die gleiche ausgabe
hallo
infotext
hallo
textirgenwas
huhu
gutentag
verzweiflung macht sich breit
|
|
|
|
|
Account gelöscht
Ort: -
Alter: -
|
Verfasst Mo 25.07.2005 14:28
Titel
|
|
|
Das ist die XML und mit der funktionierts. Umbauen musst dus schon selbst, du hast ja nicht die ganze Datei gepostet daher kann ich nur raten wie die strukturiert ist.
Code: | <container>
<article>
<template>hallo1</template>
<info>infotext1</info>
</article>
<article>
<template>hallo1</template>
<info>textirgenwas2</info>
<template>hallo2</template>
<info>textirgenwas2</info>
</article>
<article>
<template>huhu1</template>
<info>gutentag2</info>
</article>
</container> |
Zuletzt bearbeitet von am Mo 25.07.2005 14:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
PHP: Doppelte Einträge aus in einem Array ausgeben
Wordpress: kategorie auf startseite ausschließen
Die Letzten 5 Einträge in SQL
Bestimmte einträge anzeigen in der DB
PDF Formulare (Einträge speichern)
Wordpress: Einträge auslesen
|
|