Avatar billede jmarkling Nybegynder
02. maj 2005 - 23:39 Der er 1 løsning

Word dokument stylesheet transforms

Har et xml dokument hvori der er 2 billeder konverteret til base64 format. De billeder skal vha af et office 2003 word xslt-stylesheet transforms. Problemet er at det første billede vises 2 gange mens det andet ikke vises.

  <xsl:template match="/ns0:Reports/ns0:Charts/ns0:Chart[1]/ns0:article">
    <ns0:article>

    <!-- internal url of the image -->
    <xsl:variable name="url">
      <xsl:text>wordml://</xsl:text>
      <xsl:number count="image" format="00000001"/>
      <xsl:text>.gif</xsl:text>
    </xsl:variable>
   
      <xsl:for-each select="@ns0:*|@*[namespace-uri()='']">
        <xsl:attribute name="{name()}" namespace="{namespace-uri()}">
          <xsl:value-of select="." />
        </xsl:attribute>
      </xsl:for-each>
      <w:p>

      <w:pict>
        <w:binData w:name="{$url}">
          <xsl:value-of select="myObj:EncodeBase64(@src1)"/> 
        </w:binData>
        <v:shape id="{generate-id()}" style="width:100%;height:100%">
          <v:imagedata src1="{$url}" o:title="{@alt}"/>
        </v:shape>
      </w:pict>

      </w:p>
    </ns0:article>
  </xsl:template>
Avatar billede janegil Nybegynder
03. maj 2005 - 09:43 #1
Det er riktig nok. For du har en seleksjon som består av to noder; xsl:xalue-of for en mengde noder, er det samme som verdien av den første noden. Det du ber om er "For hver av nodene, gi meg verdien av den første."

Så i stedet for <xsl:value-of select="." /> skal du nok prøve <xsl:apply-templates/>, og lage en template som gir deg verdien du skal ha.
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