-2

確認フォームには、平均的で無駄のないソリューションが必要です。サーバーの XML 応答から連絡先の電子メール アドレスを取得します。それは次のとおりです。

<users>
<User LoginName="test1" Owner="" Alias="" UserType="PAID" ClientType="OBM" 
Quota="10737418240" Timezone="GMT+08:00 (CST)" Language="en" DataFile="1" 
DataSize="1536" RetainFile="0" RetainSize="0" EnableMSSQL="Y" EnableMSExchange="Y"
EnableOracle="Y" EnableLotusNotes="Y" EnableLotusDomino="Y" EnableMySQL="Y" 
EnableInFileDelta="Y" EnableShadowCopy="Y" EnableExchangeMailbox="N" 
ExchangeMailboxQuota="0" EnableNASClient="Y" EnableDeltaMerge="Y" EnableMsVm="N" 
MsVmQuota="0" EnableVMware="N" VMwareQuota="0" Bandwidth="0" Notes="" 
Status="ENABLE" RegistrationDate="1302687743242" SuspendPaidUser="N" 
SuspendPaidUserDate="20140503" LastBackupDate="1302699594652" EnableCDP="Y" 
EnableShadowProtectBareMetal="Y" EnableWinServer2008BareMetal="Y" 
Hostname="123.abc.com">
<Contact Name=""Email="www@qqq.com"/>
</user> 
…
</users>

私は次の結果を得ることができました:

object(SimpleXMLElement)#7 (1) { [0]=> string(6) "Company" } 
object(SimpleXMLElement)#8 (1) { [0]=> string(26) "email@address.ext" }

今、私はそれらを変数に入れる必要があります。私はこれを達成することができないようです。私のコードはここに到達します:

    $request = "http://$SERVER/obs/api/GetUser.do?
    SysUser=$SYSUSER&SysPwd=$SYSPWD&LoginName=$logonname";
    // Execute the API Call and place the XML output in an Array variable
    $response = simplexml_load_file($request);
    // Retrieve the LoginName attribute from the Array
    foreach($response->children() as $child) {   
        foreach($child->attributes() as $data) {
            echo var_dump($data);
        }
     }

初心者の助けは感謝されます。ありがとうございました

フランク

4

1 に答える 1

0

XML から名前と電子メールを読み取る簡単な例を次に示します。

$response = simplexml_load_file($request);

foreach($response->User as $user)
{
    foreach($user->Contact as $contact)
    {
        $name = $contact->attributes()->Name;
        $email = $contact->attributes()->Email;

        echo $name;
        echo $email;
    }
}

デモ

于 2013-02-15T14:27:19.043 に答える