내가 다른 XML 여기 https://stackoverflow.com/a/10629806/662877XSLT는 부모 - 자식 요소의 값
에서 사용되는 어떤 것을 같은 논리를 사용하려고하지만 의도 된 출력을 받고 있지 않다 기반으로 자식 요소를 제거합니다. // TERR = "KHM6"는 다음 제거하면
는 입력/2 개에서 이러한 요소 CreatePaymentItems 및 CreatePayExt을 제거하여 출력을 생성한다. 누군가 여기서 내가 누락 된 내용을 말해 줄 수 있습니까?감사
XSLT :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match=
"*[../TERR='KHM6']/CreatePaymentItems | *[../TERR='KHM6']/CreatePayExt"/>
</xsl:stylesheet>
샘플 입력 XML :
<ns0:DocTran doctype="Return" xmlns:ns0="http://test.Schemas.Out_Return">
<TransactionType>
<PayLineItems>
<PayLineInsert>
<PAYTYPE>4</PAYTYPE>
<NUMBER>R2293416</NUMBER>
<SERIAL>3335889530</SERIAL>
<DOCDATE>05/03/2012</DOCDATE>
<ITEMNMBR>4NZ3330000010</ITEMNMBR>
<UNITPRCE>599.99</UNITPRCE>
<XTNDPRCE>599.99</XTNDPRCE>
<QUANTITY>1</QUANTITY>
<TAXAMNT>43.65</TAXAMNT>
<QTYONHND>1</QTYONHND>
<TERR>KHM6</TERR>
</PayLineInsert>
</PayLineItems>
<PayLineEXT>
<PAYTYPE>4</PAYTYPE>
<NUMBER>R2293416</NUMBER>
<LNITMSEQ>2293416</LNITMSEQ>
</PayLineEXT>
<CreatePaymentItems>
<CreatePaymentInsertRecord>
<INTERID>TOTM</INTERID>
<PAYTYPE>4</PAYTYPE>
<PAYNUMBER>R2293416</PAYNUMBER>
<DOCDATE>05/03/2012</DOCDATE>
<DOCAMOUNT>645.03</DOCAMOUNT>
<DOCNUMBER>2293416</DOCNUMBER>
</CreatePaymentInsertRecord>
</CreatePaymentItems>
<CreatePayExt>
<PAYTYPE>4</PAYTYPE>
<PAYNUMBER>R2293416</PAYNUMBER>
<SEQNUMBR>61261585</SEQNUMBR>
</CreatePayExt>
</TransactionType>
</ns0:DocTran>
예상 출력 XML :
0 1,238,326,
시작 태그가'CreatePaymentInsertRecord'이지만 닫는 태그는'CreateSopPaymentInsertRecord'이므로 XML을 수정해야했습니다. 예상대로 다시 확인하고 싶을 수도 있습니다. –
@ TimC : 편집 해 주셔서 감사합니다. – JohnXsl