晚上好專家。我的要求如下。我正在根據不應傳遞的材料轉換目標消息。如果目標消息包含某些材料,則這些材料將從目標中移除。如果僅指定值,繞過XSLT轉換存在
但是,我們還要檢查目標消息是否只包含(僅限於),這些材料則不應該刪除這些材料。
目前下面的代碼是查找和刪除有問題的材料。請建議如何忽略此新要求的轉換。
我正在考慮choose-> when->否則。
非常感謝提前。
<xsl:output method="xml" indent="yes"/>
<xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='407303']"/>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='243']"/>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='262']"/>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='265']"/>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='5624']"/>
<xsl:template match="E1EDP01[E1EDP19/IDTNR ='145416']"/>
誠摯的歉意: - 樣品輸入只有2行項目,但還是應該創建這個輸出。您可以多次複製E1EDP01位以滿足其他IDTNR值。
謝謝吉姆。
<?xml version="1.0" encoding="UTF-8"?>
<ORDERS05><IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<DIRECT>2</DIRECT>
<IDOCTYP>ORDERS05</IDOCTYP>
<MESTYP>ORDERS</MESTYP>
<SNDPOR>SNDPOR</SNDPOR>
<SNDPRT>KU</SNDPRT>
<SNDPFC>AG</SNDPFC>
<SNDPRN>BWH</SNDPRN>
<RCVPOR>RCVPOR</RCVPOR>
<RCVPFC>LS</RCVPFC>
<RCVPRN>RCVPRN</RCVPRN>
</EDI_DC40>
<E1EDK01 SEGMENT="1">
<BSART>UB</BSART>
<BELNR>4505345253</BELNR>
</E1EDK01>
<E1EDKA1 SEGMENT="1">
<PARVW>AG</PARVW>
<LIFNR>B15</LIFNR>
<TELF1></TELF1>
<BNAME></BNAME>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<LIFNR>B15</LIFNR>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>LF</PARVW>
</E1EDKA1>
<E1EDK02 SEGMENT="1">
<QUALF>001</QUALF>
<BELNR>4505345253</BELNR>
<DATUM>20121102T00:00:00</DATUM>
<UZEIT>20121102T00:00:00</UZEIT>
</E1EDK02>
<E1EDP01 SEGMENT="1">
<POSEX>00001</POSEX>
<MENGE>1</MENGE>
<MENEE>EA</MENEE>
<VPREI>150.00</VPREI>
<NETWR></NETWR>
<CURCY>ZAR</CURCY>
<E1EDP19 SEGMENT="1">
<QUALF>001</QUALF>
<IDTNR>145416</IDTNR>
</E1EDP19>
<E1EDPT1 SEGMENT="1">
<TDID>ZERR</TDID>
<TSSPRAS_ISO>EN</TSSPRAS_ISO>
<E1EDPT2 SEGMENT="1">
<TDLINE>Description: GAS CYL DBL NOZZLE 48KG EM</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>UOM: EA</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Quantity: 1</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Unit Price: 150</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Customer Part Number: 145416</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2></E1EDPT1>
</E1EDP01>
<E1EDP01 SEGMENT="1">
<POSEX>00002</POSEX>
<MENGE>1</MENGE>
<MENEE>EA</MENEE>
<VPREI>150.00</VPREI>
<NETWR></NETWR>
<CURCY>ZAR</CURCY>
<E1EDP19 SEGMENT="1">
<QUALF>001</QUALF>
<IDTNR>407303</IDTNR>
</E1EDP19>
<E1EDPT1 SEGMENT="1">
<TDID>ZERR</TDID>
<TSSPRAS_ISO>EN</TSSPRAS_ISO>
<E1EDPT2 SEGMENT="1">
<TDLINE>Description: GAS CYL DBL NOZZLE 48KG EM</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>UOM: EA</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Quantity: 1</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Unit Price: 150</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Customer Part Number: 407303</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2></E1EDPT1>
</E1EDP01>
<E1EDS01 SEGMENT="1">
<SUMID>001</SUMID>
<SUMME>1</SUMME>
</E1EDS01>
<E1EDS01 SEGMENT="1">
<SUMME>150.00</SUMME>
<WAERQ>ZAR</WAERQ>
</E1EDS01>
</IDOC>
這個例子將刪除第二行,因爲這不包含由XSLT被移除以及一個項目。它應該只處理第一行。
<?xml version="1.0" encoding="UTF-8"?>
<ORDERS05>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<DIRECT>2</DIRECT>
<IDOCTYP>ORDERS05</IDOCTYP>
<MESTYP>ORDERS</MESTYP>
<SNDPOR>SNDPOR</SNDPOR>
<SNDPRT>KU</SNDPRT>
<SNDPFC>AG</SNDPFC>
<SNDPRN>BWH</SNDPRN>
<RCVPOR>RCVPOR</RCVPOR>
<RCVPFC>LS</RCVPFC>
<RCVPRN>RCVPRN</RCVPRN>
</EDI_DC40>
<E1EDK01 SEGMENT="1">
<BSART>UB</BSART>
<BELNR>4504836702</BELNR>
</E1EDK01>
<E1EDKA1 SEGMENT="1">
<PARVW>AG</PARVW>
<LIFNR>1001600-S78</LIFNR>
<TELF1></TELF1>
<BNAME></BNAME>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>WE</PARVW>
<LIFNR>1001600-S78</LIFNR>
</E1EDKA1>
<E1EDKA1 SEGMENT="1">
<PARVW>LF</PARVW>
</E1EDKA1>
<E1EDK02 SEGMENT="1">
<QUALF>001</QUALF>
<BELNR>4504836702</BELNR>
<DATUM>20120423T00:00:00</DATUM>
<UZEIT>20120423T00:00:00</UZEIT>
</E1EDK02>
<E1EDP01 SEGMENT="1">
<POSEX>00001</POSEX>
<MENGE>100</MENGE>
<MENEE>EA</MENEE>
<VPREI>156.18</VPREI>
<NETWR></NETWR>
<CURCY>ZAR</CURCY>
<E1EDP19 SEGMENT="1">
<QUALF>001</QUALF>
<IDTNR>10220</IDTNR>
</E1EDP19>
<E1EDPT1 SEGMENT="1">
<TDID>ZERR</TDID>
<TSSPRAS_ISO>EN</TSSPRAS_ISO>
<E1EDPT2 SEGMENT="1">
<TDLINE>Description: GAS 9KG</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>UOM: EA</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Quantity: 100</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Unit Price: 156.18</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Customer Part Number: 10220</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
</E1EDPT1>
</E1EDP01>
<E1EDP01 SEGMENT="1">
<POSEX>00002</POSEX>
<MENGE>1</MENGE>
<MENEE>EA</MENEE>
<VPREI>150.00</VPREI>
<NETWR></NETWR>
<CURCY>ZAR</CURCY>
<E1EDP19 SEGMENT="1">
<QUALF>001</QUALF>
<IDTNR>243</IDTNR>
</E1EDP19>
<E1EDPT1 SEGMENT="1">
<TDID>ZERR</TDID>
<TSSPRAS_ISO>EN</TSSPRAS_ISO>
<E1EDPT2 SEGMENT="1">
<TDLINE>Description: GAS EMPTY 9 KG</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>UOM: EA</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Quantity: 1</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Unit Price: 150</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
<E1EDPT2 SEGMENT="1">
<TDLINE>Customer Part Number: 243</TDLINE>
<TDFORMAT>*</TDFORMAT>
</E1EDPT2>
</E1EDPT1>
</E1EDP01>
<E1EDS01 SEGMENT="1">
<SUMID>001</SUMID>
<SUMME>2</SUMME>
</E1EDS01>
<E1EDS01 SEGMENT="1">
<SUMME>30618.00</SUMME>
<WAERQ>ZAR</WAERQ>
</E1EDS01>
</IDOC>
</ORDERS05>
一些示例輸入XML和所需的輸出將有所幫助... –