Announcement

Collapse
No announcement yet.

Attribute durchsuchen und ändern

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

  • Attribute durchsuchen und ändern

    Hallo zusammen,

    habe mich gerade hier registriert, da ich mit einem XSLT-Problem überhaupt nicht weiterkomme. Ich habe zugegebenermaßen, zumindest bis jetzt , wenig Ahnung von der Materie.

    Folgende XML-Strukur habe ich:

    <Document>

    <Allgemeines/>

    <Geometrie/>

    <Bauteil ID="12345" Nummer="A1" Beschreibung="Ein Bauteil" Version="2008" Farbe="schwarz" Code="-" Typ="ABC" >
    <Weiteres ID="A" Anzahl="2">
    <Eigenschaft ID="1" Ref="ABC" />
    <Eigenschaft ID="2" Ref="CDE" />
    </Weiteres>
    <Zusatz>
    <ZusatzTeil Hersteller="ABC" Nummer="54321/>
    </Zusatz>
    </Bauteil>

    <Bauteil ID="56789" ... />

    </Document>

    Ziel soll sein, nur die Attribute der Bauteil-Knoten zu durchsuchen. Wenn dort eines der Attribute (Nummer, Beschreibung, Version, Farbe, Code oder Typ) einen "-" enthält, soll dieser durch "" (leer) ersetzt werden. (hier Code)

    Habe schon einiges ausprobiert mit Xpath, aber irgendwie wird kein sinnvolles Ergebnis oder Fehlermeldungen erzeugt.


    Vielen Dank im Voraus.

    Basti

  • #2
    Ansatz mit Identitäts-Template und Zusatz-Template für die Attribute mit '-' im Attributwert:
    Code:
    <?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="@Nummer[contains(.,'-')] | @Beschreibung[contains(.,'-')] | 
        @Version[contains(.,'-')] | @Farbe[contains(.,'-')] | @Code[contains(.,'-')] |
        @Typ[contains(.,'-')]">
        <xsl:attribute name="{name()}"/>
      </xsl:template>
    
    </xsl:stylesheet>

    Comment


    • #3
      Hat super geklappt, DANKE!

      Comment

      Working...
      X