Avatar billede yuksel Nybegynder
20. september 2005 - 09:16 Der er 11 kommentarer og
1 løsning

xsl include file hvordan ?

Hej til alle.

jeg har en stor xsl fil jeg gerne vil dele op i flere dele.
Derfor vil jeg have en XSL fil som includere 3 andre.


xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
      <xsl:include href="Forside.xsl"/>
      <xsl:include href="bagside.xsl"/>
</xsl:stylesheet>



jeg har prøvet med overstående kode, men den includere kun den ene af dem og ikke begge samtidigt
Avatar billede yuksel Nybegynder
20. september 2005 - 11:49 #1
hmmmm.
Avatar billede yuksel Nybegynder
20. september 2005 - 14:40 #2
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="master.xsl"/>
  <xsl:import href="sub.xsl"/>
  <!-- other child elements follow -->
</xsl:stylesheet>


ok, så får jeg den sidste(sub.xsl) frem men master bliver ikke vist :(
er der nogen der kan se finten her
Avatar billede softspot Forsker
21. september 2005 - 09:15 #3
Definerer du de samme matchkriterier i de to imports? Hvis du gør det, så er det den sidste der gælder...
Avatar billede yuksel Nybegynder
21. september 2005 - 13:08 #4
jeg definere ikke nogen matckritier ! (jeg vil have det hele med)

Jeg Bruger word til at lave 3 dokumenter som gemmes som XML dernæst omdøber jeg dem til XSL og åbner dem og sætter noget kode i topen lige før  <w:worddocument>

kode: <?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
  <xsl:processing-instruction name="mso-application">
  <xsl:text>progid="Word.Document"</xsl:text>
  </xsl:processing-instruction>



og sætter noget kode i slutning lige efter </w:wordDocument>
kode :
</xsl:template>
</xsl:stylesheet>

og på denne måde har jeg 3 filer.
problemmet er så at jeg ikke ved hvordan jeg kan lave en XSL fil som inkludere alle de 3 filer, så nær den bliver ekseveret så skal den eksveres som en stor fil.
Avatar billede softspot Forsker
21. september 2005 - 13:26 #5
Hvis både master.xsl og sub.xsl ser ud som du beskriver ovenfor, så er dit matchkriterium jo "/" (i kraft af <xsl:template match="/">). Det betyder at når du importerer sub.xsl, så vil den "overskrive" templaten i master.xsl.

Du kunne prøve at navngive dine templates med wordinformationerne i stedet og så kalde dem fra hoveddokumentet.

master.xsl:
---------------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<xsl:output method="xml" indent="yes" />
<xsl:template name="masterdoc">
  <xsl:processing-instruction name="mso-application">
    <xsl:text>progid="Word.Document"</xsl:text>
  </xsl:processing-instruction>
</xsl:template>
</xsl:stylesheet>

sub.xsl:
-----------
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<xsl:output method="xml" indent="yes" />
<xsl:template name="subdoc">
  <xsl:processing-instruction name="mso-application">
    <xsl:text>progid="Word.Document"</xsl:text>
  </xsl:processing-instruction>
</xsl:template>
</xsl:stylesheet>

main.xsl:
--------------
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:import href="master.xsl"/>
  <xsl:import href="sub.xsl"/>
  <xsl:template match="/">
    <xls:call-template name="masterdoc"/>
    <xls:call-template name="subdoc"/>
  </xsl:template>
  <!-- other child elements follow -->
</xsl:stylesheet>
Avatar billede yuksel Nybegynder
21. september 2005 - 15:55 #6
den melder fejl når jeg prøver den at sætte den op imod noget xml i word
A document must contain exatly one root element
error location linie 4



<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">

  <xsl:import href="master.xsl"/>
  <xsl:import href="sub.xsl"/>
  <xsl:template match="/">
    <xsl:call-template name="masterdoc"/>
    <xsl:call-template name="subdoc"/>
  </xsl:template>
  <!-- other child elements follow -->
</xsl:stylesheet>
Avatar billede yuksel Nybegynder
22. september 2005 - 11:58 #7
løsningen på problemmet vil være hvis man kunne lave 3 filer i Word og gemme dem som
xml, og dernes sætte det her i toppen :
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
  <xsl:processing-instruction name="mso-application">
  <xsl:text>progid="Word.Document"</xsl:text>
  </xsl:processing-instruction>



og det her i bunden:

</xsl:template>
</xsl:stylesheet>


og lad resten være og gemme det som XSL.


så er det meningen at man i med noget xml i word kan apply 1 style sheet som har de 2 andre som include.

men jeg syndes bare at den melder altid et eller andet fejl :(




ps da jeg syndes at spørgesmålet er blevet sværere end tidligere har jeg lagt flere
Avatar billede yuksel Nybegynder
23. september 2005 - 08:55 #8
da, syndes at spørgesmållet er blevet sværre har jeg derfor tildelt flere point til den rette besvarelse. håber dette vil hjælpe :(
Avatar billede softspot Forsker
23. september 2005 - 10:21 #9
Du må undskylde jeg er blevet så tavs, men det er ikke fordi der er/var for lidt point på spørgsmålet, men jeg har ikke arbejdet med xml og xsl i Word, så jeg kan i bedste fald gætte på hvad der skal gøres. De ting jeg ved om XSL er af mere generel karakter og jeg har ikke nævneværdig erfaring med imports og includes, så jeg har indtil nu kun henholdt mig til hvad synes at kunne huske om disse elementer...

Jeg håber der kommer en anden forbi dette spørgsmål, som ved mere om det end jeg gør.
Avatar billede yuksel Nybegynder
13. oktober 2005 - 10:14 #10
kan du ikke indlægge et svar for din indlæg har hjulpet
Avatar billede softspot Forsker
13. oktober 2005 - 11:09 #11
Jo da! Vær så artig :)
Avatar billede softspot Forsker
25. oktober 2005 - 10:17 #12
Tak for point :)
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