Avatar billede christian Nybegynder
03. april 2004 - 18:14 Der er 7 kommentarer og
2 løsninger

xml til nyt xml

Hvordan omformer jeg lettets noget xml til noget nyt xml?

Jeg har:
<item>
    <overskrift>test 1</overskrift>
    <overskrift>test 2</overskrift>
    <overskrift>test 3</overskrift>
    <overskrift>test 4</overskrift>
</item>
det skal blive til
<trees>
    <tree name="test 1" />
    <tree name="test 2" />
    <tree name="test 3" />
    <tree name="test 4" />
<trees>

Output skal ikke gemmes, men bare vises i browseren
Avatar billede nute Nybegynder
03. april 2004 - 18:36 #1
brug xsl:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
        <xsl:element name="trees">
            <xsl:apply-templates/>
        </xsl:element>
    </xsl:template>
    <xsl:template match="overskrift">
        <xsl:element name="tree">
            <xsl:attribute name="name"><xsl:value-of select="."/></xsl:attribute>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>
Avatar billede christian Nybegynder
03. april 2004 - 18:49 #2
Jeg kan ikke bruge xsl, da jeg skal vælge en bestemt <item> via asp.net

Med mindre at jeg kan få overført en xpath til xsl via asp.net?
Avatar billede nute Nybegynder
03. april 2004 - 19:03 #3
eh ? nu forstår jeg ikke. du beder om at få transformeret din xml, på nemmeste måde og bagefter så kan du ikke bruge den nemmeste måde ?? hmm .. hvorfor beskriver du ikke hele din problemstilling istedet for kun en del af den ??

anyway ... hvis du skal have fat i en bestemt <item>, så kan du vel bare spørge efter denne node ... med xpath ?!

Denne fatter jeg intet af:

Med mindre at jeg kan få overført en xpath til xsl via asp.net

/nute
Avatar billede christian Nybegynder
03. april 2004 - 19:24 #4
okay, jeg prøvede bare at gøre det enkelt :-)
nyt forsøg

Jeg har:
<item id="1">
    ...
    <item id="2">
        ...
        <item id="3"
            <overskrift>test 1</overskrift>
            <overskrift>test 2</overskrift>
            <overskrift>test 3</overskrift>
            <overskrift>test 4</overskrift>
        </item>
        ...
    </item>
    ...
</item>
det skal blive til
<trees>
    <tree name="test 1" />
    <tree name="test 2" />
    <tree name="test 3" />
    <tree name="test 4" />
<trees>

altså jeg skal lave item med id 3 om til trees
Fra asp.net'en har jeg den fulde xpath item[@id = 1]/item[@id = 2]/item[@id = 3]
For at bruge xslt skal jeg ligesom vide hvilken item jeg skal bruge til at transformere.
Avatar billede nute Nybegynder
03. april 2004 - 20:22 #5
tja ... det er jo flere måder at gøre dette på. umiddelbart så ser din xml ud til at være lidt underlig, men det får så være.

du kan, fra din aspx side, hente ud den node du vil have (med din xpath expression), læse denne node ind i et nyt xml dokument og derefter transformere med den xsl jeg har postet.

alternativt kan du iterere dine <overskrift> noder via DOM og bygge en ny xml ud fra disse.

den xml du har, skaber problemer for dig, med tanke på transformering.

/nute
Avatar billede christian Nybegynder
05. april 2004 - 11:54 #6
det har hjulpet mig lidt på vej...
nute, smider du et svar, så giver jeg 30 point
Avatar billede nute Nybegynder
05. april 2004 - 12:27 #7
oki :-) fino ...
Avatar billede christian Nybegynder
05. april 2004 - 13:38 #8
tager selv de 30 point ud af de 60
Avatar billede nute Nybegynder
05. april 2004 - 14:07 #9
det er helt oki ...

- takker -
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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