Birden SOAP yanıtları normalleştirilmesi için Strateji

1 Cevap php

Ben temelde web hizmeti yerine sadece çoklu as far as I know bir anda bir oda araması destekler çünkü birden SOAP yanıtları birleştirmek çalışıyorum - onun checkavailability yöntemi kullanılarak bu WSDL

Benim soap isteği benim kimlik, geliş / gidiş tarihleri ​​sağlarsanız ben özellikle 3 şey .. Oda Çeşitleri (oda ve açıklama tipi), Tarifeler (fırsatlar) ve Oda Fiyatları (harita tehlikeye geri aşağıdaki verileri almak planları / fırsatlar ile oda).

Adlı kullanıcı 20 Şubat bir varış tarihi ve 24 Şubat 2010 bir ayrılış tarihini belirten diyelim, varış / kalkış ama 3 oda kitap istiyorum:

  • 3x yetişkin 2x çocuklu 1x Oda
  • 2x 1x yetişkinler çocukları ile 1x Oda
  • 1x yetişkin 0 çocuk 1x Oda

3 oda var çünkü insanların # fiyatları değişecek farklı çünkü Yani, 3 istekler olmalıdır.

Benim ana endişe benim web sayfasında ilk oda tiplerini görüntülemek ve her oda tipi blok içinde kullanıcı istiyorum her oda için fiyat, eski görüntüleyebilir ki bu tür birleştirme nasıl:

<li>
    <h2>King Suite</h2>
    <h3>Prices</h3>
    <ul class="tabs">
      <li>Room 1<table></table></li>
      <li>Room 2<table></table></li>
      <li>Room 3<table></table></li>
    </ul>
</li>

SOAP yanıt örnek:

        <RoomStays>
            <RoomStay>
                <RoomTypes>
                    <RoomType RoomTypeCode="KING" NumberOfUnits="14">
                        <RoomDescription Name="Kings Room">
                            <Text>Content</Text>
                            <Image>http://static.images.com/file.gif</Image>
                        </RoomDescription>
                    </RoomType>
                </RoomTypes>
                <RatePlans>
                    <RatePlan RatePlanCode="SPECIAL" RatePlanName="Special Rate">
                        <RatePlanDescription Name="Published Rate">
                            <Text>Published Rate European Plan</Text>
                        </RatePlanDescription>
                        <Guarantee>
                            <GuaranteeDescription>
                                <Text>1 night room and tax due at the time of reservation</Text>
                            </GuaranteeDescription>
                        </Guarantee>
                        <CancelPenalties>
                            <CancelPenalty>
                                <PenaltyDescription>
                                    <Text>30 day cancellation policy</Text>
                                </PenaltyDescription>
                            </CancelPenalty>
                        </CancelPenalties>
                        <Commission>
                            <Percent>10</Percent>
                        </Commission>
                    </RatePlan>
                </RatePlans>
                <RoomRates>
                    <RoomRate RoomTypeCode="KING" RatePlanCode="SPECIAL">
                        <Rates>
                            <Rate>
                                <Base AmountBeforeTax="1145.00" AmountAfterTax="1145.00" CurrencyCode="USD" />
                                <Total AmountBeforeTax="5725.00" AmountAfterTax="5725.00" CurrencyCode="USD" />
                                <Taxes>
                                    <Tax Amount="0.00" CurrencyCode="USD" />
                                </Taxes>
                                <Tpa_Extensions>
                                    <NightlyRate Date="12/28/2010" Price="1145.00" Tax="0.00" Fee="0.00" PriceWithTaxAndFee="1145.00" />
                                    <NightlyRate Date="12/29/2010" Price="1145.00" Tax="0.00" Fee="0.00" PriceWithTaxAndFee="1145.00" />
                                    <NightlyRate Date="12/30/2010" Price="1145.00" Tax="0.00" Fee="0.00" PriceWithTaxAndFee="1145.00" />
                                    <NightlyRate Date="12/31/2010" Price="1145.00" Tax="0.00" Fee="0.00" PriceWithTaxAndFee="1145.00" />
                                    <NightlyRate Date="1/1/2011" Price="1145.00" Tax="0.00" Fee="0.00" PriceWithTaxAndFee="1145.00" />
                                </Tpa_Extensions>
                            </Rate>
                        </Rates>
                    </RoomRate>
                </RoomRates>
                <BasicPropertyInfo HotelCode="1" HotelName="My Hotel!" />
            </RoomStay>
        </RoomStays>

Yani temelde, ne şekilde ben de belirtilen HTML biçimlendirme işleyebilir böylece tüm 3 isteklerini birleştirmek için bu biçimlendirme normalize gerekir?

1 Cevap

Bu deneyin:

 $children = array();
 foreach ($filelist as $file)
 {
   $dom = new DOMDocument();
   $dom->load($file);
   $children[] = $dom->firstChild;
 }
 $output = new DOMDocument();
 $output->appendChild($root = $output->createElement("rootelement"));
 foreach ($children as $child)
 {
   $imported = $output->importNode($child, true);
   $root->appendChild($imported);
 }
 // $output contains a DOMDocument with your aggregate document
 $newxml = $output->saveXML(); // if you want your XML as a string

$ Yerine dom-> yük kullanımı $ dom-> loadXML size XML yerine bir disk dosyası içeren bir dize yüklemek istiyorsanız.

Eğer bir XML listesinde veya DOM her şey var sonra, PHP XPath (iyi) veya XSLT (en iyi), (kötü) yineleme tarafından ayrı kesebilir.