xmlトランスフォーメーションの問題が発生しました。提案されたmuenchianグループを適用して新しいxmlの同一要素を削除した後、マルチXML要素内のマルチタグ要素をソースXMLから関連する各グループに変換できませんでした。次Muenchianグループ化後にソースXMLからマルチタグ要素を各関連グループに変換する方法
<?xml version="1.0"?>
<InputShipmentSchedule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DataArea>
<ShipmentSchedule>
<ShipmentScheduleLine>
<ManufacturingItem>
<ItemID>
<ID>P313503</ID>
</ItemID>
</ManufacturingItem>
<EffectiveTimePeriod>
<StartDate>2012-03-08</StartDate>
</EffectiveTimePeriod>
<ItemQuantity unitCode="PC">3</ItemQuantity>
</ShipmentScheduleLine>
<ShipmentScheduleLine>
<ManufacturingItem>
<ItemID>
<ID>P313503</ID>
</ItemID>
</ManufacturingItem>
<EffectiveTimePeriod>
<StartDate>2012-03-09</StartDate>
</EffectiveTimePeriod>
<ItemQuantity unitCode="PC">1</ItemQuantity>
</ShipmentScheduleLine>
<ShipmentScheduleLine>
<ManufacturingItem>
<ItemID>
<ID>P313504</ID>
</ItemID>
</ManufacturingItem>
<EffectiveTimePeriod>
<StartDate>2012-03-08</StartDate>
</EffectiveTimePeriod>
<ItemQuantity unitCode="PC">10</ItemQuantity>
</ShipmentScheduleLine>
<ShipmentScheduleLine>
<ManufacturingItem>
<ItemID>
<ID>P313504</ID>
</ItemID>
</ManufacturingItem>
<EffectiveTimePeriod>
<StartDate>2012-03-10</StartDate>
</EffectiveTimePeriod>
<ItemQuantity unitCode="PC">8</ItemQuantity>
</ShipmentScheduleLine>
</ShipmentSchedule>
</DataArea>
</InputShipmentSchedule>
を私のXSLTです:私のソースXMLには、以下のことのようです
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/> <xsl:output indent="yes"/>
<xsl:key name="n" match="ItemID" use="ID"/>
<xsl:template match="/">
<Output_Data>
<ShipmentSchedule>
<xsl:for-each select="//ManufacturingItem/ItemID[generate-id()=generate-id(key('n',.))]">
<Part_Detail>
<part_no value="{.}"/>
<xsl:for-each select="//ManufacturingItem/ItemID[generate-id()=generate-id(key('n',.))]">
<xsl:call-template name="requirement_detail_template"/>
</xsl:for-each>
</Part_Detail>
</xsl:for-each>
</ShipmentSchedule>
</Output_Data>
</xsl:template>
<xsl:template name="requirement_detail_template">
<Requirement_Detail>
<requirement_date value="{../../EffectiveTimePeriod/StartDate}"/>
<requirement_qty value="{../../ItemQuantity}"/>
</Requirement_Detail>
</xsl:template>
</xsl:stylesheet>
私は何を取得しています:
<?xml version="1.0" encoding="UTF-8"?>
<Output_Data>
<ShipmentSchedule>
<Part_Detail>
<part_no value="P313503"/>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="3"/>
</Requirement_Detail>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="10"/>
</Requirement_Detail>
</Part_Detail>
<Part_Detail>
<part_no value="P313504"/>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="3"/>
</Requirement_Detail>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="10"/>
</Requirement_Detail>
</Part_Detail>
</ShipmentSchedule>
</Output_Data>
私はする必要があります何を期待:
<?xml version="1.0" encoding="UTF-8"?>
<Output_Data>
<ShipmentSchedule>
<Part_Detail>
<part_no value="P313503"/>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="3"/>
</Requirement_Detail>
<Requirement_Detail>
<requirement_date value="2012-03-09"/>
<requirement_qty value="1"/>
</Requirement_Detail>
</Part_Detail>
<Part_Detail>
<part_no value="P313504"/>
<Requirement_Detail>
<requirement_date value="2012-03-08"/>
<requirement_qty value="10"/>
</Requirement_Detail>
<Requirement_Detail>
<requirement_date value="2012-03-10"/>
<requirement_qty value="8"/>
</Requirement_Detail>
</Part_Detail>
</ShipmentSchedule>
</Output_Data>
テスト条件の設定方法xsl:if?誰も私のXSLTを修正するのを助けることができますか?
はい、今すぐxsltが正常に動作します。あなたのコメントは素晴らしい点でした。私はそれが好きです。 – Charles
Muenchianのグループ化では、キーが定義されていれば、それをグループ内のアイテムを見つけるために使用しますが、それはそのアプローチのポイントです。つまり、ではなく、