使用XSLT1.0将一个请求转换为另一个请求(对元素进行分组)

时间:2015-06-22 19:30:11

标签: xslt xpath

我有一个要求,我必须将一个请求转换为另一个请求。

下面是我从SAP后端获得的响应。

输入

      <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
    <soap-env:Header/>
    <soap-env:Body>
        <n0:YSdsaUsseedRetDetailResponse xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style">
            <EHdr>
                <item>
                    <Yyvbeln>0020014747</Yyvbeln>
                    <Yyyear>2015</Yyyear>
                    <Yytext/>
                </item>
                <item>
                    <Yyvbeln>0020014760</Yyvbeln>
                    <Yyyear>2015</Yyyear>
                    <Yytext/>
                </item>
            </EHdr>
            <EItm>
                <item>
                    <Yyvbeln>0020014747</Yyvbeln>
                    <Yyposnr>000010</Yyposnr>
                </item>
                <item>
                    <Yyvbeln>0020014760</Yyvbeln>
                    <Yyposnr>000020</Yyposnr>
                </item>
            </EItm>
            <EMessages/>
        </n0:YSdsaUsseedRetDetailResponse>
    </soap-env:Body>
</soap-env:Envelope>

欲望输出

我已从输出中删除了不需要的元素。

<mon:ReturnsList>
    <mon:ReturnProperties>
        <mon:DocumentNumber>0020014747</mon:DocumentNumber>
        <mon:Status>SUBMITTED</mon:Status>
        <mon:DateSubmitted>0000-00-00</mon:DateSubmitted>
        <mon:RequestedPickupDate>0000-00-00</mon:RequestedPickupDate>
        <mon:DateClosed>0000-00-00</mon:DateClosed>
        <mon:Comments/>
        <mon:PurchaseOrderNumber>36-1</mon:PurchaseOrderNumber>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014747</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
    </mon:ReturnProperties>
    <mon:ReturnProperties>
        <mon:DocumentNumber>0020014760</mon:DocumentNumber>
        <mon:Status>SUBMITTED</mon:Status>
        <mon:DateSubmitted>2015-06-19</mon:DateSubmitted>
        <mon:RequestedPickupDate>2015-06-23</mon:RequestedPickupDate>
        <mon:DateClosed>0000-00-00</mon:DateClosed>
        <mon:Comments/>
        <mon:PurchaseOrderNumber/>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014760</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014760</mon:DocumentNumber>
            <mon:ItemNumber>000020</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
    </mon:ReturnProperties>
</mon:ReturnsList>

XSLT在这里Code

**代码中的O / P(删除不需要的元素)

<?xml version="1.0" encoding="UTF-8"?>
<mon:ReturnsList xmlns:n0="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:mon="Monsanto:ServiceReturnDetail" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <mon:ReturnProperties>
        <mon:DocumentNumber>0020014747</mon:DocumentNumber>
        <mon:Status/>
        <mon:Comments/>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014747</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014747</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
    </mon:ReturnProperties>
    <mon:ReturnProperties>
        <mon:DocumentNumber>0020014747</mon:DocumentNumber>
        <mon:Status/>
        <mon:Comments/>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014747</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
        <mon:ReturnDetailResponseDetails>
            <mon:DocumentNumber>0020014747</mon:DocumentNumber>
            <mon:ItemNumber>000010</mon:ItemNumber>
        </mon:ReturnDetailResponseDetails>
    </mon:ReturnProperties>
</mon:ReturnsList>

任何人都可以告诉我为什么我会犯错误吗?

0 个答案:

没有答案