2016-08-01 12 views
0

in meinem XML Ich habe Knoten <action/> an verschiedenen Stellen durch das Dokument. Jeder Aktionsknoten sollte den Wert "U" erhalten.Wert hinzufügen, um bestehenden Knoten in Xml mit XSLT

habe ich versucht, diese aber es hat nicht funktioniert:

xml-Eingang:

<?xml version="1.0" encoding="UTF-8"?><operationsSchedule> 
    <id>test</id> 
    <operationsRequests> 
     <operationsRequest> 
      <id>20572152</id> 
      <segmentRequirements> 
       <segmentRequirement> 
        <id>W1</id> 
        <materialRequirements> 
     <action/> 

     <hierarchyScope>default</hierarchyScope> 
     <materialDefinitionID>510000533</materialDefinitionID> 
     <materialRequirementID>510000533_0004</materialRequirementID> 
     <materialRequirementProperties> 
      <materialRequirementProperty> 
       <action/> 
       <dataType>Text</dataType> 
       <hierarchyScope>default</hierarchyScope> 
       <materialDefinitionPropertyID>BAG_NR</materialDefinitionPropertyID> 
       <materialRequirementPropertyID>BAG_NR</materialRequirementPropertyID> 
       <materialRequirementPropertyValueTexts> 
        <materialRequirementPropertyValueText> 
        <languageID>EN</languageID> 
        <uiid>47275</uiid> 
        <value><![CDATA[1]]></value> 
        </materialRequirementPropertyValueText> 
       </materialRequirementPropertyValueTexts> 
       <materialUse>Other</materialUse> 
       <requiredByRequestedSegmentResponse>Other</requiredByRequestedSegmentResponse> 
      </materialRequirementProperty> 
      <materialRequirementProperty> 
       <action/> 
       <dataType>Text</dataType> 
       <hierarchyScope>default</hierarchyScope> 
       <materialDefinitionPropertyID>SCENARIO</materialDefinitionPropertyID> 
       <materialRequirementPropertyID>SCENARIO</materialRequirementPropertyID> 
       <materialRequirementPropertyValueTexts> 
        <materialRequirementPropertyValueText> 
        <languageID>EN</languageID> 
        <uiid>47276</uiid> 
        <value><![CDATA[C]]></value> 
        </materialRequirementPropertyValueText> 
       </materialRequirementPropertyValueTexts> 
       <materialUse>Other</materialUse> 
       <requiredByRequestedSegmentResponse>Other</requiredByRequestedSegmentResponse> 
      </materialRequirementProperty> 

        </materialRequirements> 
       </segmentRequirement> 
      </segmentRequirements> 
     </operationsRequest> 
    </operationsRequests> 
</operationsSchedule> 

xsl:

<xsl:template match="node()|@*"> 
    <xsl:copy> 
     <xsl:apply-templates select="node()|@*"/> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="action"> 
    <xsl:copy> 
     <xsl:apply-templates select="@*"/> 
     <xsl:text>U</xsl:text> 
    </xsl:copy> 
</xsl:template> 

<xsl:template match="materialRequirements"/> 

</xsl:stylesheet> 
+0

Können Sie ein Eingabe-Beispiel und die Ausgabe, die Sie erhalten, und die gewünschte Ausgabe veröffentlichen? –

+0

Ich habe Eingabe-XML hinzugefügt. –

+0

Die Eingabe ist nicht wohlgeformtes XML; Es hat kein '' schließendes Tag. –

Antwort

1

Sie müssen die materialRequirements die <xsl:template match="materialRequirements"/> wie die Art und Weise entfernen Elemente werden nicht verarbeitet und natürlich, wenn sie enthalten action Elemente Ihre Vorlage für sie wird nie verwendet.

Verwandte Themen