Avatar billede excession Nybegynder
13. januar 2005 - 10:23 Der er 7 kommentarer

XSL copy value-of

Hejsa

Jeg har en XML fil hvor en node <post>.. oprtræder i forskellige niveauer i XML træet

Umiddelbart under budgetPost er der et element <gruppe>.  Jeg vil gerne kopiere det tekst som gruppe indeholder til et element i samme niveau som hedder <info> :

<post>
  <gruppe>4</gruppe>
  <info></info>
</post>

skal blive til :

<post>
  <gruppe>4</gruppe>
  <info>4</info>
</post>

Er der nogen der kan hjælpe mig?

Tak!
Avatar billede excession Nybegynder
13. januar 2005 - 10:31 #1
jeg vil altså beholde hele XML filen.. men der skal bare lige kopieres et tal et sted fra til e anden..
Avatar billede Slettet bruger
13. januar 2005 - 10:36 #2
Denne template skulle kunne gøre det:

<xsl:template match="gruppe">
  <xsl:copy-of select="." />
  <info><xsl:value-of select="." /></info>
</xsl:template>

/CS
Avatar billede Slettet bruger
13. januar 2005 - 10:39 #3
Ah, well - disse fungerer nok bedre sammen med et evt. eksisterende stylesheet:

<xsl:template match="post">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="gruppe">
  <xsl:copy-of select="." />
  <info><xsl:value-of select="." /></info>
</xsl:template>

<xsl:template match="info" />

/CS
Avatar billede excession Nybegynder
13. januar 2005 - 10:51 #4
hmm kan ikke få det til at virke..
Avatar billede excession Nybegynder
13. januar 2005 - 11:03 #5
hvordan konverterer jeg XML filen? Jeg har forsøgt i XML Spy, men det er HTML der kommer ud og alle elementer er væk..
Avatar billede babz Nybegynder
13. januar 2005 - 14:38 #6
Hvordan binder du XML og XSL sammen....ligger det i XMLfilen eller bruger du ASP eller noget andet.
Der er forskel på om browseren modtager output fra serverens ASP eller om det bliver oversat af browseren selv????

/B
Avatar billede Slettet bruger
13. januar 2005 - 23:32 #7
Okay - hvis du bare skal have din XML fil transformeret til det nye format, er det nok nemmest at hente Microsofts "Command Line Transformation Utility"
(http://www.microsoft.com/downloads/details.aspx?familyid=2fb55371-c94e-4373-b0e9-db4816552e41&displaylang=en) (eller Google efter "msxsl.exe")

Brug dette XSLT Stylesheet:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="@*|*">
  <xsl:copy>
      <xsl:apply-templates select="*|@*" />
  </xsl:copy>
</xsl:template>

<xsl:template match="post/gruppe">
  <xsl:copy-of select="." />
  <info><xsl:value-of select="." /></info>
</xsl:template>

</xsl:stylesheet>

/CS
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