Chcę utworzyć żądanie mydła z pliku XML, ale dostaję niewłaściwą wyjście.

Moje wejście XML:

<?xml version="1.0"?>
<ProDataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <vorh>
        <vorh_num>30204009</vorh_num>
    </vorh>
    <vorh_vorr>
        <vorr_num>6</vorr_num>
    </vorh_vorr>
    <vorr_pamt>
        <arti_code>A69002275</arti_code>
        <part_num>001I1903282356</part_num>
        <pamt_aantal>1.0</pamt_aantal>
    </vorr_pamt>
</ProDataSet>

Mój XSLT:

<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/ProDataSet">
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://main.jws.com.hanel.de" xmlns:q1="http://main.jws.com.hanel.de/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance">
            <soapenv:Header/>
            <soapenv:Body>
                <q0:sendJobsReqV01>
                    <q0:param>
                        <q1:jobs>
                            <q1:jobNumber>
                                <xsl:value-of select="vorh/vorh_num"/>
                            </q1:jobNumber>
                        </q1:jobs>
                    </q0:param>
                </q0:sendJobsReqV01>
            </soapenv:Body>
        </soapenv:Envelope>
    </xsl:template>
</xsl:stylesheet>

To jest moje wyjście: widzisz, że podaje kilka wyjść XLS, ale to musi być numer, a nie tylko wybrać jako zwykły tekst

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://main.jws.com.hanel.de" xmlns:q1="http://main.jws.com.hanel.de/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header />
    <soapenv:Body>
        <q0:sendJobsReqV01>
            <q0:param>
                <q1:jobs>
                    <q1:jobNumber>
                        <xsl:value-of select="vorh/vorh_num" />
                    </q1:jobNumber>
                </q1:jobs>
            </q0:param>
        </q0:sendJobsReqV01>
    </soapenv:Body>
</soapenv:Envelope>

Mam nadzieję, że wszyscy zrozumiesz, z góry dziękuję!

0
Danny Bierens 27 październik 2020, 10:59

1 odpowiedź

Najlepsza odpowiedź

Masz tutaj literówkę:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://main.jws.com.hanel.de" xmlns:q1="http://main.jws.com.hanel.de/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance">

Zrestrukturowałeś prefiks xsl jako xmlns:xsl="http://www.w3.org/2001/XMLSchema-instance". Wierzę, że powinno być: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance".

0
michael.hor257k 27 październik 2020, 09:45