0

次の temp.XML ドキュメントがあります。

<?xml version="1.0" encoding="UTF-8"?>
<services_api_response version="2.0">
  <status>
    <code>0</code>
    <message>OK</message>
  </status>
  <service id="82dadd66a5048cc85ed0b8da1d835f2a">
    <countries>
      <country code="BA" vat="17.00" approved="true" name="Bosnia and Herzegovina">
        <prices>
          <price vat_included="false" currency="BAM" all_operators="true" amount="2.00">
            <message_profile shortcode="091810700" all_operators="true" keyword="TXT ABC">
              <operator code="BH Mobile" billing_type="MO" revenue="0.84" default_billing_status="OK" name="BH Mobile"/>
              <operator code="HT-ERONET" billing_type="MO" revenue="0.84" default_billing_status="OK" name="HT-ERONET"/>
              <operator code="M:tel" billing_type="MT" revenue="0.84" default_billing_status="Failed" name="M:tel"/>
            </message_profile>
          </price>
        </prices>
        <promotional_text>
          <local>Cena: 2,00 BAM + PDV
Podr&#353;ka: 000000000| bbb@ccc.com Mobilna Naplata: fortumo.com</local>
          <english>Price: 2.00 BAM + VAT
Support: 000000000| bbb@ccc.com
Mobile Payment by fortumo.com</english>
        </promotional_text>
      </country>
     </countries>
    </service>
</services_api_response>

および PHP ファイル:

$obj = simplexml_load_file('temp.xml');

echo '---> '.$obj -> countries[0] -> promotional_text[0] -> local[0];

しかし、私は何も得ません。

4

4 に答える 4

2

試す:

echo '---> ' . $obj->service[0]
                   ->countries[0]
                   ->country[0]
                   ->promotional_text[0]
                   ->local[0];
于 2012-11-17T20:18:36.290 に答える
2

いくつかのノードを忘れました:

echo '---> '.$obj -> service[0] -> countries[0] -> country[0] -> promotional_text[0] -> local[0];
于 2012-11-17T20:19:34.697 に答える
2
echo (string) $obj->service[0]->countries[0]->country[0]->promotional_text[0]->local[0];

出力

セナ: 2,00 BAM + PDV

ポドルシュカ: 000000000| bbb@ccc.com Mobilna Naplata: fortumo.com

コードパッドのデモはこちら

オブジェクトをターゲットにしているため、SimpleXML 値をエコーするときに文字列にキャストすることをお勧めします。

于 2012-11-17T20:21:05.637 に答える
0

次のようにxpathを使用できます。

<?php
$xml = simplexml_load_file('/tmp/temp.xml');
$local = $xml->xpath('//countries/country/promotional_text/local');

print_r($local[0]);
于 2012-11-17T20:25:21.030 に答える