2011-12-20 3 views
2

私はphp.net例につき次のコードを使用してXMLファイルあちこちvsingle値を抽出するためにSimpleXMLElementを取得しようとされている使用して、要素の抽出:がにSimpleXMLElement

$resp = new SimpleXMLElement($xml); 
foreach($resp->SESSION_LIST->SESSION as $sess){ 
    $type = $sess->TRACKING->TYPE; 
} 

私はそう、戻り値いつも別のsimpleXMLオブジェクトです。私が探している値を取得する方法については固まっています。誰かが私に正しい方向へのプッシュを与えてくれますか?

ここに私が使用しているXML文字列があります。これは、複数のセッション属性を持つことができます。

あなたがオブジェクトを文字列に型キャストする必要が
$xml = <<<XML 
<?xml version="1.0"?> 
    <FREIGHTVIEW> 
     <SESSION_LIST> 
      <SESSION id="529075"> 
       <SESSION_ID>529075</SESSION_ID> 
       <LABEL>116800</LABEL> 
       <INTEGRATION_REFERENCE_NUMBER>WDLSTRFDTS</INTEGRATION_REFERENCE_NUMBER> 
       <TRACKING> 
       <TYPE>provider assigned</TYPE> 
       <EVENT_DATETIME>03/01/11 02:07:59 PM</EVENT_DATETIME> 
       <TIMEZONE /> 
       <USER_NAME>Dispatch Team</USER_NAME> 
       <COMPANY_NAME>M&amp;W Distribution</COMPANY_NAME> 
       <RECORDED_DATETIME>03/01/11 02:07:59 PM</RECORDED_DATETIME> 
       <SOURCE /> 
      </TRACKING> 
      <QUOTE id="5173468"> 
       <QUOTE_ID>5173468</QUOTE_ID> 
       <CARRIER type="Private"> 
        <NAME>- FedEx Freight Priority -</NAME> 
        <CARRIER_REFERENCE_NUMBER>FXFE</CARRIER_REFERENCE_NUMBER> 
        <CONTACT>- FedEx Freight Priority -</CONTACT> 
        <EMAIL /> 
        <PHONE></PHONE> 
       </CARRIER> 
       <TOTAL_AMOUNT>262.57</TOTAL_AMOUNT> 
       <ACCESSORIALS> 
        <ACCESSORIAL> 
         <NAME>fuel surcharge</NAME> 
         <AMOUNT>79.47</AMOUNT> 
        </ACCESSORIAL> 
        <ACCESSORIAL> 
         <NAME>delivery appointment request</NAME> 
         <AMOUNT>0.00</AMOUNT> 
        </ACCESSORIAL> 
        <ACCESSORIAL> 
         <NAME>line haul</NAME> 
         <AMOUNT>183.10</AMOUNT> 
        </ACCESSORIAL> 
       </ACCESSORIALS> 
       <EQUIPMENT> 
        <MODE>ltl</MODE> 
        <TYPE></TYPE> 
       </EQUIPMENT> 
       <PICKUP_DATE></PICKUP_DATE> 
       <ESTIMATED_DELIVERY_DATE></ESTIMATED_DELIVERY_DATE> 
       <REFERENCE_ID>37307086</REFERENCE_ID> 
       <QUOTE_GOOD_UNTIL></QUOTE_GOOD_UNTIL> 
       <QUOTE_TYPE>instant ltl</QUOTE_TYPE> 
       <COMMENTS></COMMENTS> 
       <QUOTE_STATUS>assigned</QUOTE_STATUS> 
      </QUOTE> 
     </SESSION> 
    </SESSION_LIST> 
</FREIGHTVIEW> 
XML; 
+0

あなたは本当に***どうなるか知っている**これを告げて...ここに有用おかしくあなたが実際に望む要素。 – Layke

+0

SESSION要素で、属性ではありません。 :) – DanMan

+0

私は実際に欲しがっている「どっかい要素」を明確にしていないことをお詫びします。それは要素内の値です。私は、この例から明らかであると思いました。私は次回は非常に具体的であることを保証します。 – radi8

答えて

2

$type = (string) $sess->TRACKING->TYPE; 
+0

ありがとうございます。私はそれの上に髪を引き裂いていた。 [PHPのドキュメント](http://ie2.php.net/manual/ja/simplexml.examples-basic.php)には決して言及されていませんが、これは珍しいことです。 PHPのドキュメントは通常かなり良いです。 – TRiG

+1

私は実際これをPHPのドキュメントのバグとして報告しました。 – TRiG

関連する問題