[php/xml/xsl] link naar specifieke node

Pagina: 1
Acties:
  • 101 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo!

Momenteel ben ik druk bezig met xml/xsl en php! Ik heb hiervoor de tutorial gebruikt welke bij Dreamweaver geleverd wordt: zie link (http://www.adobe.com/devn...cles/server_side_xsl.html).
Ik begin er al aardig wat van te snappen en heb de files aangepast naar mijn eigen wensen. (nog niet gestyled, dus daar niet teveel op letten)
Momenteel heb ik 5 bestanden, namelijk specials.php, menu.xsl, test.xml, object.php en object.xsl.
Specials.php (hierin wordt het xml bestand geladen via menu.xsl) is mijn beginpagina.
Van daaruit wil ik graag een link naar een detailpagina (object.php) waar de andere elementen van de gesecteerde node verschijnen.
Alles werkt nu goed, behalve dan dat de detailpagina momenteel alle nodes laat zien. Op de detailpagina wil ik echter alleen de details van de geselecteerde node laten zien!
Na een heel weekend gezocht te hebben op internet en op dit forum, kom ik er nog steeds niet uit!
Misschien is er wel een heel simpele oplossing, maar ik zit me er nu behoorlijk blind op te staren!
Zouden jullie als experts eens een blik willen werpen op mijn code??

*snip*

Alvast heel erg bedankt voor het kijken ernaar en ik hoop dat jullie me kunnen helpen!!

Groeten Jacoba

[ Voor 68% gewijzigd door Creepy op 10-12-2007 20:34 ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:47

Creepy

Tactical Espionage Splatterer

Zouden jullie als experts eens een blik willen werpen op mijn code??
Helaas, maar zo werkt het hier niet. Aangezien je al een heel weekend er mee bezig bent geweest: wat heb je zelf al precies geprobeerd? Wat lukte daar niet mee? Heb je misschien relevante code voor ons die we kunnen bekijken (relevante code is niet hetzelfde als alle (!) code).

Zie aub Programming Beleid. Lees dat eens rustig door zodat je weet wat we hier van een topic start verwachten. Je krijgt dan ook meteen het gebruik van code tags mee want nu was het redelijk onleesbaar. Je code heb ik weggehaald omdat het gewoon veel te veel was. Het is hier geen plek om je code te dumpen en maar te hopen dat je een kant en klare oplossing terug krijgt.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Poging 2:

Ik had in mijn vorige post alle code meegepost omdat het zo ingewikkeld uitleggen is om alleen snippets van codes te sturen. Maar hierbij poging 2!

Mijn probleem is als volgt:
Een link maken naar een specifieke node uit mijn xml-bestand. Mijn xml-bestand is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="UTF-8"?>
<OBJECTEN>
  <OBJECT>
    <SOORT>gereedschap</SOORT>
    <ID>40000003002</ID>
    <TEXT>beschrijving</TEXT>
  </OBJECT>
  <OBJECT>
   meer objecten etc...
  </OBJECT>
</OBJECTEN>


Via een php-bestand wil ik een element laten linken naar een detailpagina (ook een php-pagina).
De link geef ik in het xsl-bestand als volgt aan:

code:
1
2
<xsl:for-each select="/OBJECTEN/OBJECT" name="{ID}">
NAME: <a href="object.php#{ID}" target="_self">


Er opent zich na het klikken op de id-naam dus een nieuwe pagina, wat super werkt! De nieuwe pagina laat echter niet alleen alle elementen weer van de goede node, ook van alle andere!
Ik kan er niet achter komen hoe ik het {ID} mee kan geven aan de nieuwe pagina.

Momenteel heb ik in het xsl-bestand van de detailpagina de volgende code staan:
code:
1
2
3
  <xsl:template match="ID">
    <p><xsl:apply-templates/></p>
  </xsl:template>


En dit geeft natuurlijk alle objecten weer uit het xml-bestand.
Ik heb al geprobeerd via "{generate-id()}" alleen de specifieke node naar de nieuwe pagina te laten linken, ook de match naam aanpassen wou niet baten!

Weet iemand hoe ik de detailpagina dezelfde {ID} kan meegeven? En zodoende alle elementen van dat betreffende object kan laten zien?

I

Acties:
  • 0 Henk 'm!

  • djiwie
  • Registratie: Februari 2002
  • Laatst online: 17-09 16:35

djiwie

Wie?

... laat maar, verkeerd gelezen :X

[ Voor 94% gewijzigd door djiwie op 11-12-2007 12:30 ]


Acties:
  • 0 Henk 'm!

  • Milt
  • Registratie: Februari 2005
  • Laatst online: 06-07-2024
Ik neem aan dat je op de detailpagina de XML met alle objecten inlaad ? Daar gaat het mis want daardoor zie je de details van alle objecten. Je moet met behulp van de PHP de ID van de URL halen en dan XML genereren welke alleen de details van dat object bevat.

Je zou nog wel met FOR-EACH loopje en IF in xslt een vergelijking kunnen maken of je het juiste object tegenkomt maar dan moet je in je XML wel de ID meegeven waarvan de details getoond moet worden (de xslt engine kan dat niet van de URL halen). Maar ik denk dat het ook een langzame oplossing is omdat de xslt render engine door een grote XML tree heen moet terwijl het uiteindelijk maar van 1 object de details laat zien. Des te meer objecten je hebt, des te langzamer het wordt.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo Milt,

Bedankt voor je reactie!
Ik laad inderdaad op de detailpagina hetzelfde xml-bestand in. Deze gaat echter ongeveer 30 objecten bevatten, dus dat gaat met de laadtijd wel meevallen toch, of niet?
Ik heb me vandaag verdiept in de Muenchian methode. Deze linkt echter via anchors op dezelfde pagina. Heb geprobeerd om ook hiermee de id naar de volgende pagina te brengen, maar helaas! En linken naar anchors op dezelfde pagina is niet de bedoeling.
Nu heb ik de volgende tutorial gevonden: http://www.contentwithsty...ables/final/transform.php, alleen geeft deze bij mij op de server een foutmelding. Ik denk dat dit met Sablotron heeft te maken. Ga dus maar weer verder zoeken!
Bedankt voor je for-each suggestie, ga me hier nu in verdiepen!

Grtjs
Pagina: 1