Avatar billede shemeri Praktikant
19. marts 2005 - 22:44 Der er 3 kommentarer og
1 løsning

XML Transformation

Hej,

Hvordan kan jeg bruge XSLT til transformation af xml til xml ved hjælp af "recursives"?
eksample: jeg har denne xml file:

<path>
<d>
<move position="absolute"> <mx>0</mx><my>312</my></move>
<line>
<x>78</x><y>120</y>
</line>
<vline>
<x>87</x><y>11</y>
</vline>
<dcubic>
<dx>40</dx><dy> 48</dy><dx>120</dx><dy>-32</dy><dx>160</dx><dy>-6</dy></dcubic>
<dcubic>
<dx>0</dx><dy>0</dy><dx>5</dx><dy>4</dy><dx>10</dx><dy>-3</dy></dcubic>
<z />
</d>
</path>


jeg vil have en ny xml hvor jeg læg 2 værdier sammen, alle y og dy værdier skal have (y eller dy værdi + my)!
Avatar billede Slettet bruger
20. marts 2005 - 00:05 #1
Det kan du gøre vha. flg. stylesheet:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes" />
    <xsl:variable name="addme" select="number(/path/d/move/my)" />
   
    <xsl:template match="* | @*">
        <xsl:copy>
            <xsl:apply-templates select="@* | * | text()" />
        </xsl:copy>
    </xsl:template>
   
    <xsl:template match="y | dy">
        <xsl:element name="{name()}">
            <xsl:value-of select="number(.) + $addme" />
        </xsl:element>
    </xsl:template>
   
</xsl:stylesheet>

/CS
Avatar billede shemeri Praktikant
20. marts 2005 - 17:01 #2
det virker næsten :)
jeg får NaN i al y tags:

<path>
  <d>
    <move position="absolute">
      <x>0</x>
      <y>NaN</y>
    </move>
    <dcubic>
      <dx>40</dx>
      <dy>NaN</dy>
      <dx>120</dx>
      <dy>NaN</dy>
      <dx>160</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>0</dx>
      <dy>NaN</dy>
      <dx>5</dx>
      <dy>NaN</dy>
      <dx>10</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>10</dx>
      <dy>NaN</dy>
      <dx>50</dx>
      <dy>NaN</dy>
      <dx>90</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>0</dx>
      <dy>NaN</dy>
      <dx>20</dx>
      <dy>NaN</dy>
      <dx>30</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>-2</dx>
      <dy>NaN</dy>
      <dx>-18</dx>
      <dy>NaN</dy>
      <dx>-40</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>-55</dx>
      <dy>NaN</dy>
      <dx>-40</dx>
      <dy>NaN</dy>
      <dx>-20 </dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>30</dx>
      <dy>NaN</dy>
      <dx>35</dx>
      <dy>NaN</dy>
      <dx>-30</dx>
      <dy>NaN</dy>
    </dcubic>
    <dcubic>
      <dx>-50</dx>
      <dy>NaN</dy>
      <dx>-170</dx>
      <dy>NaN</dy>
      <dx>-200</dx>
      <dy>NaN</dy>
    </dcubic>
    <z/>
  </d>
</path>
Avatar billede shemeri Praktikant
20. marts 2005 - 17:03 #3
sorry mit fejl. Det virker tak
Avatar billede shemeri Praktikant
20. marts 2005 - 17:19 #4
det jeg prøver og gør er:

en funktion der kan lave om på xml (svg tags). Jeg prøver og omdøber svg til absolute ved hjælp af xslt?
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