Announcement

Collapse
No announcement yet.

XML-Struktur ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML-Struktur ändern

    Hallo, ich bin der Neue.

    Liebes Forum, bitte helfe mir!!!

    Ich stehe vor einer Aufgabe, die ich einfach nicht hin bekomme.
    Ich versuche den ganzen Tag per Visual Studio 2010 eine XML Datei zu überarbeiten.

    Ich soll eine Statistik aus einer XML per Excel erstellen.

    Folgendes habe ich vor:

    Ursprüngliche Struktur in der XML (Ausschnitt) :
    Code:
    <satz>
        <mm name="Geschlecht">
            <wert>2</wert>
        </mm>
        <mm name="Geburtsjahr">
            <wert>1954</wert>
        </mm>
    </satz>
    <satz>
        <mm name="Geschlecht">
            <wert>1</wert>
        </mm>
        <mm name="Geburtsjahr">
            <wert>1955</wert>
        </mm>
    </satz>
    <satz>
        <mm name="Geschlecht">
            <wert>1</wert>
        </mm>
        <mm name="Geburtsjahr">
            <wert>1943</wert>
        </mm>
    </satz>
    Als Ausgabe benötige ich die XML so:

    Code:
    <satz>
        <Geschlecht>2</Geschlecht>
        <Geburtsjahr>1954</Geburtsjahr>
    </satz>
    <satz>
        <Geschlecht>1</Geschlecht>
        <Geburtsjahr>1955</Geburtsjahr>
    </satz>
    <satz>
        <Geschlecht>1</Geschlecht>
        <Geburtsjahr>1943</Geburtsjahr>
    </satz>
    Bekommt man das in einem Durchgang mit Visual Studio per XSLT hin?
    Ich danke Euch vielmals.

    Patrick
    Zuletzt editiert von Christian Marquardt; 07.04.2013, 21:20. Reason: Formatiert, Überschrift

  • #2
    Danke für das anpassen, sieht jetzt viel übersichtlicher aus.

    Comment


    • #3
      Hier ein Ansatz:

      Code:
      <xsl:output indent="yes"/>
      
      <xsl:template match="@* | node()">
        <xsl:copy>
         <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
      </xsl:template>
      
      <xsl:template match="satz/mm">
        <xsl:element name="{@name}">
          <xsl:value-of select="wert"/>
        </xsl:element>
      </xsl:template>
      Das musst du dann noch in ein komplettes Stylesheet packen.

      Comment


      • #4
        Guten Morgen Martin,

        vielen Dank das hat super funktioniert.
        Ganz großes Lob für die schnelle Hilfe. Bin ganz begeistert.

        Gruß
        Patrick

        Comment


        • #5
          Ich muss euch noch was fragen.
          Inmitten der XML tauchen nun noch sporadisch folgende Struckturen auf:
          Code:
          <satz>
          <Geschlecht>1</Geschlecht>
          <mmgr name="Eigenschaften" index="name(Ehrenamt)">
              <Ehrenamt>1</Ehrenamt>
              <Jahre>14</Jahre>
          </mmgr>
          <Geburtsjahr>1955</Geburtsjahr>
          </satz>
          Habt Ihr auch einen Tipp für mich, dass es in folgende Struktur bekomme?

          Code:
          <satz>
          <Geschlecht>1</Geschlecht>
          <Ehrenamt>1</Ehrenamt>
          <Jahre>14</Jahre>
          <Geburtsjahr>1955</Geburtsjahr>
          </satz>
          Vielleicht können noch andere Anfänger damit was anfangen.

          Ich danke Euch sehr

          Patrick

          Comment


          • #6
            Füge ein Template
            Code:
            <xsl:template match="satz/mmgr[@name]">
              <xsl:apply-templates/>
            </xsl:template>
            hinzu, das sorgt dann dafür, dass einfach die Inhalte von Elementen der Form "mmgr" kopiert werden.

            Comment


            • #7
              Danke Martin,

              das Du das immer einfach so aus dem Ärmel schüttelst.
              Ich habe da echt Respekt vor.

              Patrick

              Comment

              Working...
              X