PHP ile bir soap isteği oluşturma - nasıl nitelikler XML etiketleri eklerim?

2 Cevap php

Benim SOAP çağrısı aşağıdaki XML oluşturmak çalışıyorum:

<CResponse>
    <ID>int</ID>
    <Response Action="Apply">
        <Question ID="$someint">
            <Responses>
                <Response ID="$someotherint" />
                <Response ID="$yetanotherint" />
            </Responses>
        </Question>
    </Response>
</CResponse>

Ben sadece iyi aramanın en yaratabilirsiniz - Sonunda iç içe diziler arkadaşlarım olduğu aldım - ama ben bu ID="$int" ekleyebilir ve Action="Apply" öznitelikleri nasıl hiçbir fikrim yok çeşitli etiketleri. Ben bu oldukça kolaydır eminim, ama ben sadece bunu anlamaya olamaz.

TIA.

2 Cevap

Ben JJ (ve soru sizin yineden göre, çalışmak için görünmüyor) tarafından önerilen (biraz garip) sözdizimi hakkında bilmiyorum, ama bunu inşa ederek istediğiniz zaten sizin talebiniz xml şekillendirmek gerekir XSD_ANYXML kodlama ile daha fazla veya daha az 'elle' using the SoapVar sınıf.

this user comment to the SoapVar Constructor documentation Bu nasıl bir örnek için bkz.

Eğer inşa gereken XML daha karmaşık alırsa, bunun yerine doğrudan yazma monte edilmesi SimpleXML veya DOMDocument kullanmayı düşünün.

(Hala bunu yapmak hiç kolay bir yolu olması gerektiğini bana garip görünüyor, ama bugüne kadar ben bir tane bulamadım.)


Düzenleme: Sadece this question asking for a simpler way to do it olarak XSD_ANYXML kodlamayı kullanarak başka bir örnek buldum. Ne yazık ki bugüne kadar hiç kimse basit bir yol ile geldi :/

Sen, aşağıdaki sözdizimi ile özelliklerini eklemek gerekir:

array("foo" => array("_" => "cheese", "bar"=>"moo"));

Bu aşağıdaki XML üretmek gerektiğini

<foo bar="moo">cheese</foo>