|
xslt преоброзование xmlки web сервиса
|
|||
---|---|---|---|
#18+
Добрый день! Ситуация такая на входе будут 2 разные xml , а все должно выглядеть так <?xml version="1.0" encoding="utf-8" ?> <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header /> <soap:Body> <m:Z0xzErdRfcCreate xmlns:m="urn:sap-com:document:sap:soap:functions:mc-style"> <ImErd xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"> <item xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style"> <Hdr> <Sender>DKSS</Sender> <Dokar>ZEM</Dokar> <Cnnum>проверка связи с БНУ_1</Cnnum> <Cndat>2013-08-01</Cndat> <Kdatb>2013-08-01</Kdatb> <Kdate>2013-08-01</Kdate> <Cbdat>0001-01-01</Cbdat> <Cnknd>IRD</Cnknd> <Cntyp>022</Cntyp> <Lifnr>1000536821</Lifnr> <Kunnr>1403</Kunnr> <Cnsum>1.18</Cnsum> <Waers>RUB</Waers> <Zznetam>1</Zznetam> <Advance>0.12</Advance> <Aperc>0</Aperc> <Text>Межевание земельного участка</Text> <Prenr /> <Prear /> </Hdr> <Osndog> <Typr>3</Typr> <Forma /> <Numosnzakdog /> <Datosnzakdog>0001-01-01</Datosnzakdog> <Korporativ /> <Lots /> </Osndog> </item> </ImErd> </m:Z0xzErdRfcCreate> </soap:Body> </soap:Envelope> А на входе : такой xml 1 <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"><soap:Header/><soap:Body><m:Z0xzErdRfcCreate xmlns:m="urn:sap-com:document:sap:soap:functions:mc-style"><ImErd xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"><m:item><m:Hdr><m:Sender>DKSS</m:Sender><m:Dokar>ZEM</m:Dokar><m:Cnnum>проверка связи с БНУ_1</m:Cnnum><m:Cndat>2013-08-01</m:Cndat><m:Kdatb>2013-08-01</m:Kdatb><m:Kdate>2013-08-01</m:Kdate><m:Cbdat>0001-01-01</m:Cbdat><m:Cnknd>IRD</m:Cnknd><m:Cntyp>022</m:Cntyp><m:Lifnr>1000536821</m:Lifnr><m:Kunnr>1403</m:Kunnr><m:Cnsum>1.18</m:Cnsum><m:Waers>RUB</m:Waers><m:Zznetam>1</m:Zznetam><m:Advance>0.12</m:Advance><m:Aperc>0</m:Aperc><m:Text>Межевание земельного участка</m:Text><m:Prenr/><m:Prear/></m:Hdr><m:Osndog><m:Typr>3</m:Typr><m:Forma/><m:Numosnzakdog/><m:Datosnzakdog>0001-01-01</m:Datosnzakdog><m:Korporativ/><m:Lots/></m:Osndog></m:item></ImErd></m:Z0xzErdRfcCreate></soap:Body></soap:Envelope> Я использую такое преоброзование : <xsl:transform xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" xmlns:sap=" http://www.sap.com/sapxsl" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/" version="1.0"> <xsl:strip-space elements="*"/> <!-- копируем все элементы --> <xsl:template match="node() | @* | soap:Body/*"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="urn:*"> <xsl:element name="{local-name()}"> <xsl:apply-templates/> </xsl:element> </xsl:template> </xsl:transform> И все хорошо , но есть еще такой xml(2) <soap:Envelope xmlns:soap=" http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <m:Z0xzErdRfcCreate xmlns:m="urn:sap-com:document:sap:soap:functions:mc-style"> <ImErd xmlns="" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance"xsi:type="m:Z0xzErdRfcCreate"> <m:ImErd> <m:item> <m:Hdr> <m:Sender/> <m:Dokar>ZEM</m:Dokar> <m:Cnnum>0-242</m:Cnnum> <m:Cndat>2013-03-29</m:Cndat> <m:Kdatb>2013-03-29</m:Kdatb> <m:Kdate>2013-11-29</m:Kdate> <m:Cbdat>0001-01-01</m:Cbdat> <m:Cnknd>WP</m:Cnknd> <m:Cntyp>028</m:Cntyp> <m:Lifnr>1000085735</m:Lifnr> <m:ErdGph/> <m:Kunnr/> <m:Cnsum>4720000</m:Cnsum> <m:Waers>RUB</m:Waers> <m:Zznetam>4000000</m:Zznetam> <m:Advance>0</m:Advance> <m:Aperc>0</m:Aperc> <m:PlanRent>0</m:PlanRent> <m:VidBudget>2</m:VidBudget> <m:Text>rrr</m:Text> <m:Uslrash/> <m:Benf/> <m:Prenr/> <m:Prear/> <m:Prav/> </m:Hdr> <m:Osndog> <m:Typr>2</m:Typr> <m:TypeKp/> <m:NumKp/> <m:NumProtokol/> <m:DatProtokol>0001-01-01</m:DatProtokol> <m:Forma/> <m:TypeIst>18</m:TypeIst> <m:Typeosnzakdog/> <m:TypeosnOther/> <m:Numosnzakdog/> <m:Datosnzakdog>0001-01-01</m:Datosnzakdog> <m:Korporativ/> <m:Sing/> <m:Lots/> </m:Osndog> <m:Customer> <m:item> <m:Kontr/> </m:item> </m:Customer> <m:Derzat> <m:item> <m:Kontr>0000001401</m:Kontr> </m:item> </m:Derzat> <m:Ispoln> <m:item> <m:Kontr/> </m:item> </m:Ispoln> <m:Kontr> <m:item> <m:Kontr/> </m:item> </m:Kontr> </m:item> </m:ImErd> </ImErd> </m:Z0xzErdRfcCreate></soap:Body> </soap:Envelope> Здесь дополнительно появился тег <m:ImErd> и как от него избавится, используя только одно преобразование ума не приложу ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2013, 19:38 |
|
|
start [/forum/topic.php?fid=14&fpage=16&tid=1332484]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
others: | 37ms |
total: | 182ms |
0 / 0 |