Avatar billede hermandsen Juniormester
17. april 2006 - 22:59 Der er 6 kommentarer og
1 løsning

Hente alt indhold fra en XML-node

Hej Eksperter

Jeg sidder med en XML-fil som jeg selv har sammensat, hvor nogle af node'sne indeholder HTML-kode.

Vha. XSLT og PHP henter jeg de rigtige data ud, men HTML-koden forsvinder når jeg bruger value-of.

Hvis jeg f.eks. har noget XML som følger:
<foo>
<bar>Ostemad <a href="http://www.google.com/">smager</a> af <strong>ost</strong></bar>
</foo>

og i XSLT bruger <value-of select="foo/bar" />, så får jeg:
"Ostemad smager af ost" uden HTML!

Hvordan får jeg HTML'en med ud, uden at skulle omskrive XML-filen?

//hermandsen
Avatar billede Slettet bruger
17. april 2006 - 23:37 #1
En god gammel kending :-)

Hvis du selv er herre over HTML'en og ved den er "well-formed" (altså XML) og ikke indeholder "onde" script-tags kan du i stedet for value-of benytte copy-of, altså:

  <xsl:copy-of select="foo/bar" />

/CS
Avatar billede hermandsen Juniormester
18. april 2006 - 07:40 #2
Super!
Hvorfor har jeg ikke kunne finde den nogle steder!?

Tak! :)
Avatar billede hermandsen Juniormester
18. april 2006 - 07:56 #3
Arh, der var jeg vist alligevel for hurtig, for jeg skal kun bruge indholdet af elementet, med copy-of får jeg også elementets navn med.

I ovenstående eksempel får jeg <bar>Ostemad <a href="http://www.google.com">smager</a> ...</bar>

Hvordan undgår jeg bar-tagget?
Avatar billede spaceus Nybegynder
18. april 2006 - 08:22 #4
kan du ikke skifte dine indre < og > med henholdsvis &lt; og &gt;
Avatar billede hermandsen Juniormester
18. april 2006 - 08:48 #5
XML'en bliver desværre genereret af et system hvor jeg ikke har adgang til koden.
Jeg er kommet i tankte om at jeg måske kunne bruge substring-before og substring-after, men ved ikke om det er så holdbar en løsning...
Vil da håbe det kan gøres bedre (?)
Avatar billede hermandsen Juniormester
18. april 2006 - 09:00 #6
Hvis man bruger <xsl:copy-of select="foo/bar/node()" /> så virker det! Jubii!! :)
Avatar billede spaceus Nybegynder
18. april 2006 - 22:42 #7
dough ja self ;D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester