Avatar billede jakobdo Ekspert
23. januar 2008 - 22:24 Der er 4 kommentarer og
1 løsning

Hvorfor fejler mit forsøg på at vise ExtensibleContent

Jeg skal måske starte og sige jeg er helt nybegynder i XSLT og XML. :o(

Jeg har en XML fil:
<Invoice>
.......
    </com:ValidatedSignature>
    <com:ExtensibleContent>
        <h:p>Her er tilføjet xhtml opmærkning. Når ExtensibleContent elementet benyttes skal det indeholde mindst et element udenfor com namespacet.</h:p>
    </com:ExtensibleContent>
</Invoice>

Og min XSL fil:
<xsl:template name="ekstraoplysninger">
    <table border="0" width="100%" cellspacing="0" cellpadding="2">
        <tr>
            <td>
           
                <!-- her indsættes betalingsoplysninger -->
                <b>Ekstraoplysninger</b><br/>
                <xsl:value-of select="com:ExtensibleContent/h:p"/>
            </td>
        </tr>
    </table>
</xsl:template>

Hvis jeg laver:
<xsl:value-of select="com:ExtensibleContent"/>

Får jeg udskrevet data.
Hvis jeg skriver:

<xsl:value-of select="com:ExtensibleContent/h:p"/>
Får jeg fejlen:
Der refereres til et ikke-erklæret navneområdepræfiks: 'h'. Der opstod en fejl under kompilering af det inkluderede eller...

Hvad gør jeg galt?
Og er det bare mig som slet ikke har fanget noget?

/Jakobdo
Avatar billede jakobdo Ekspert
24. januar 2008 - 08:35 #1
Så blev jeg lidt klogere.
Ved at tilføje:
xmlns:fsv= "http://www.w3.org/1999/XSL/Transform">
Kommer fejlen ikke længere.
Med ved at kalde:
<xsl:value-of select="com:ExtensibleContent/h:p"/>
eller
<xsl:value-of select="h:p"/>

Kommer intet output.

Kun ved at kalde:
<xsl:value-of select="com:ExtensibleContent"/>

Ser jeg stadig outputtet: Her er tilføjet xhtml opmærkning. Når ExtensibleContent elementet benyttes skal det indeholde mindst et element udenfor com namespacet.
Avatar billede jokkejensen Novice
29. januar 2008 - 11:13 #2
jakobdo >> du er så tæt på, men hvis du ingen erfaring har med xslt/xml men godt kan få noget output, tror jeg bare du mangler at sætte dig ind i xpath..

http://www.zvon.org/xxl/XPathTutorial/General/examples.html

Prøv

Desuden skal du vide at <xsl:value-of /> tager værdien af noden, så teksten vil fremkomme blot ved select="Com:ExcensibleContent".. men hvis du har noget markering i noden, noget &lt;h1&gt kan du transformere det ved at sige

<xsl:value-of select="" disable-output-escaping="true" />

/J
Avatar billede jakobdo Ekspert
15. februar 2008 - 20:48 #3
Jokkejensen, jeg nåede desværre aldrig at få kigget mere på det, da "projektet" blev droppet. Men du skal være velkommen til at smide et svar og få de 30 point, hvis du har lyst.
Avatar billede jokkejensen Novice
19. februar 2008 - 12:01 #4
Nej tag du dem bare :)
Avatar billede jakobdo Ekspert
19. februar 2008 - 12:22 #5
Så beholder jeg dem selv.
Takker endnu engang for dit input.
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