mexxwel: Einfügen eines Knotens

Hey Leute!

Ich habe eine XML, in die ich einen zusätzlichen Knoten einfügen will.

Exemplarisch sieht die XML so aus:

<Kontakt>

<Adresse>
    <CharacterString>Musterstraße 15</CharacterString>
  </Adresse>

<Land>
    <CharacterString>Deutschland</CharacterString>
  </Land>

</Kontakt

Nun sollt unter Kontakt ein weiterer Knoten eingefügt werden, welcher eine Telefonnummer enthält. Damit es dann so aussieht:

<Kontakt>
  <Fon>
    <CharacterString>01254646846</CharacterString>
  </Fon>

<Adresse>
    <CharacterString>Musterstraße 15</CharacterString>
  </Adresse>

<Land>
    <CharacterString>Deutschland</CharacterString>
  </Land>

</Kontakt

Wäre über eure Hilfe sehr erfreut!

  1. Es geht hier weniger ums xml - sondern ums xsd, du musst uns dein xsd posten (also dein schema)

  2. Ich weiß ja eben nicht wie das Stylesheet aussehen muss... finde einfach nicht den passenden Befehl.

    1. Ich weiß ja eben nicht wie das Stylesheet aussehen muss... finde einfach nicht den passenden Befehl.

      Ich versteh nicht ganz ob du es verstanden hast:

      Es gibt immer
      1.) Ein XML-Schema wo du die Struktur definierst wie das XML aufgebaut ist. Hier kannst du Verschachtelungen,Erlaubte Elemente, Reiehenfolge, Datentypen etc. festlegen.
      2.) Du schreibst oder erzeugst ein XML und validierst dieses gegen das Schema.

      http://de.wikipedia.org/wiki/XML_Schema

      1. Hallo ms-88,

        Es gibt immer
        1.) Ein XML-Schema wo du die Struktur definierst wie das XML aufgebaut ist. Hier kannst du Verschachtelungen,Erlaubte Elemente, Reiehenfolge, Datentypen etc. festlegen.
        2.) Du schreibst oder erzeugst ein XML und validierst dieses gegen das Schema.

        XML "funktioniert" zunächst auch ohne Schema oder DTD, sofern wohlgeformt. In der Praxis ist die Nutzung von Datenmodellen zur Erstellung und Validierung von Dokumenten natürlich sinnvoll.

        XML lässt sich völlig ohne Schema/DTD mit XSLT transformieren. Wie im konkreten Fall vorzugehen ist, habe ich gezeigt.

        Hinweis: XSLT 2.0 bietet über xsl:import-schema die Möglichkeit, den erzeugten Output direkt zu validieren.

        Grüße,
        Thomas

    2. Ich weiß ja eben nicht wie das Stylesheet aussehen muss... finde einfach nicht den passenden Befehl.

      Ok nochmal =)

      Ich habe eine XML. Ich habe ein Stylesheet. Dieses Stylesheet beinhaltet bereits einige Funktionen (die auch funktionieren). Ich würde nur gerne wissen, wie nun exemplarisch der Befehl in meinem angegbenen konkreten Beispiel auszushen hätte.

  3. Hallo mexxwel,

    Ich habe eine XML, in die ich einen zusätzlichen Knoten einfügen will.

    Ansatz Identitäts-Template mit zusätzlicher Behandlung der Kontakt-Knoten:

    <?xml version="1.0" encoding="UTF-8"?>  
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
      
      <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>  
      
      <xsl:template match="@* | node()">  
        <xsl:copy>  
          <xsl:apply-templates select="@* | node()"/>  
        </xsl:copy>  
      </xsl:template>  
      
      <xsl:template match="Kontakt">  
        <xsl:copy>  
          <Fon>  
            <CharacterString>...</CharacterString><!-- Fon-Daten hier passend zuordnen -->  
          </Fon>  
          <xsl:apply-templates select="@* | node()"/>  
        </xsl:copy>  
      </xsl:template>  
      
    </xsl:stylesheet
    

    Ein Schema braucht man dafür tatsächlich nicht (ggf. zum nachträglichen Validieren).

    Grüße,
    Thomas