Avatar billede soc127754 Nybegynder
14. august 2003 - 08:24 Der er 2 kommentarer og
2 løsninger

Transformation af xmlfil

Jeg har en xml-fil som denne:

<pages>
<page>
  <title>bl.a.bl.a.
  </title>
  <url>bl.a.bl.a.
  </url>
  <description>bl.a.bl.a.
  </description>
  [osv...]
</page>
</pages>

Hvordan transformerer jeg den til denne form:

<fields>
<field name=title>bl.a.bl.a.</field>
<field name=url>bl.a.bl.a.</url>
<field name=description>bl.a.bl.a.</description>
</fields>

Jeg kan godt lave et xslt hvor jeg transformer noder med kendte navne. Men hvordan gør jeg det for en vilkårlig xmlfil med node-navne ("title","url" m.v.) jeg ikke kender?
Avatar billede atoft Nybegynder
14. august 2003 - 08:31 #1
lave en template med match = "*"

i denne template laver du så følgende:

<field>
  <xsl:attribute name="name"><xsl:value-of select="name()" /></xsl:attribute>
  <xsl:value-of select="."/>
</field>
Avatar billede Slettet bruger
14. august 2003 - 10:51 #2
I stedet for value-of skal du nok bruge apply-templates for at få evt. underelementer med:

<xsl:template match="*">
  <field name="{name()}">
      <xsl:apply-templates />
  </field>
</xsl:template>

/CS
Avatar billede Slettet bruger
14. august 2003 - 10:52 #3
- og kun bruge value-of til textnodes:

<xsl:template match="text()">
  <xsl:value-of select="." />
</xsl:template>

/CS
Avatar billede soc127754 Nybegynder
14. august 2003 - 17:26 #4
Tak for hjælpen til jer begge!
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