powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xslt преоброзование xmlки web сервиса
1 сообщений из 1, страница 1 из 1
xslt преоброзование xmlки web сервиса
    #38381650
ygloom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Ситуация такая на входе будут 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> и как от него избавится, используя только одно преобразование ума не приложу
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / xslt преоброзование xmlки web сервиса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]