[DOM XML] tags in je content

Pagina: 1
Acties:

  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 14:14
Voor een nieuwe website gebruik ik een database waarin berichten opgenomen zijn. Om de gebruiker toch nog wat opmaak mogelijkheden te geven sta ik het toe om daarin tags als B,I etc te gebruiken.
Nu is het probleem dat deze berichten uit de database mbv DOMXML in een XML file geplakt worden. Daar hangt weer een XSL stylesheet aan wat vervolgens de XML netjes weergeeft.

Het probleem: de tags die meegegeven worden worden niet als tags in de XML geparsed; logisch aangezien je daarvoor geen create_element aanroept. Resultaat is dat ze gewoon als <p> afgedrukt worden in de browser; en dat is dus niet de bedoeling.
Wat is een fatsoenlijke manier om die op te lossen? Ik weet dat het niet netjes is om html tags in je berichten op te nemen, maar zou ik het met zelf gemaakte tags doen werkt het natuurlijk nog steeds niet.

Ik heb gekeken naar deze functie: http://php.caos.cl/manual/en/function.domxml-open-mem.php die een string kan omzetten naar xml. Jammer alleen dat die een nieuw document aanmaakt, dat wil ik helemaal niet omdat je dan de nodes niet kunt toewijzen aan het andere xml document!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Waarom roep je geen create_element aan die de tags afbeeldt zoals jij dat wil? Lijkt me niet onmogelijk, ook al heb ik geen ervaring met dit alles. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 14:14
Dan zou ik het stuk tekst moeten gaan scannen op tags met een regex ofzo, en dan weer alle tags gaan implementeren met create_element en de waardes goed zien te krijgen. Dat is me veel teveel werk voor een probleem dat volgens mij veel makkelijker opgelost kan worden.

Bovenstaande functie werkt opzich prima, hij klaagt er alleen over dat je nodes van een document X niet toe kan voegen aan een document Y. Opzich logisch, maar waarom wordt document X uberhaupt aangemaakt? Dat is nou net wat ik NIET nodig heb.

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 15-05 15:12
Importeer dat nieuwe document anders in het echte document?

Skat! Skat! Skat!


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 14:14
Hoe zou ik dat moeten doen? Het enige dat ik kan vinden mbt includes is Xinclude, maar dat is simpelweg 2 xml structuren samenvoegen.
Dan zou ik 2 aparte files moeten maken, en de een in de ander gaan includen met xinclude.. dat valt wat mij betrefd weer onder de noemer "moeilijk doen terwijl het makkelijker kan"

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 22-05 23:11
de quick-&-dirty manier :

- zorg dat in de berichten (in de database) alle tags omgezet zijn naar &lt ; en &gt ;
- bouw je xml met die berichten (berichten als text-nodes)
- doe je xsl-transform naar een string
- vervang in de string alle &lt ; en &gt ; door < en >
- print naar client

enorm vies, maar ik heb 't ook een paar keer gebruikt.

Verwijderd

Niet dat ik hier eerstehands ervaring mee heb, maar ik stel me voor dat als de tags in de XML gewoon als <b> en <p> staan (Dus niet &lt; b &gt;), ze toch gewoon letterlijk overgenomen zouden moeten worden in de uitvoer?

[ Voor 12% gewijzigd door Verwijderd op 20-07-2004 14:23 ]


  • jsiegmund
  • Registratie: Januari 2002
  • Laatst online: 14:14
tech-no-logical schreef op 20 juli 2004 @ 14:21:
de quick-&-dirty manier :

- zorg dat in de berichten (in de database) alle tags omgezet zijn naar &lt ; en &gt ;
- bouw je xml met die berichten (berichten als text-nodes)
- doe je xsl-transform naar een string
- vervang in de string alle &lt ; en &gt ; door < en >
- print naar client

enorm vies, maar ik heb 't ook een paar keer gebruikt.
Kan niet aangezien ik de XSL transform niet zelf doe. Zou ervoor kunnen kiezen om dat wel te doen, en dan kan dit inderdaad... maar je zegt het zelf al: enorm vies!
Verwijderd schreef op 20 juli 2004 @ 14:22:
Niet dat ik hier eerstehands ervaring mee heb, maar ik stel me voor dat als de tags in de XML gewoon als <b> en <p> staan (Dus niet &lt; b &gt;), ze toch gewoon letterlijk overgenomen zouden moeten worden in de uitvoer?
Nee; want create_element van DOM XML maakt een enkel XML element aan met de string die je als invoer geeft als waarde. En ik weet niet precies waarom, maar de browser ziet dat en geeft je tag dan weer als tekst, en niet als tag.

Nu ik daaraan denk; zou een oplossing zijn als je create_element kunt vertellen dat de ingevoerde string weer tags bevat, dus dat ie hem gewoon 1-op-1 moet plakken. Zoals het er nu uitziet zorgt create_element ervoor dat karakters weer omgezet worden, niet de bedoeling!

[ Voor 42% gewijzigd door jsiegmund op 20-07-2004 14:53 ]

Pagina: 1