2016-08-01 21 views
0

を追加しました。ノード<action/>がドキュメントの別の場所にあります。 すべてのアクションノードは値 "U"を取得する必要があります。XSLTを使用してXSLTを使用してxmlの既存のノードに値を追加するxmlに

私はこれを試してみましたが、それはうまくいきませんでした:

入力XML:

<?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

入力サンプルと、取得した出力と代わりに必要な出力を投稿できますか? –

+0

入力xmlを追加しました。 –

+0

入力が正しい形式のXMLではありません。 ''終了タグはありません。 –

答えて

1

あなたはmaterialRequirementsその方法として<xsl:template match="materialRequirements"/>を削除する必要があります要素は処理されず、含まれている場合は明らかにactionそれらのテンプレートは決して使用されません。

関連する問題