0

ここで単純なものが欠けているに違いなく、それが私を夢中にさせています。

Web サービス API を呼び出して、いくつかの xml を取得しています。

<?xml version="1.0" encoding="utf-16"?>
<MTSMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <LastName>Smith</LastName>
  <FirstName>john</FirstName>
  <MemberNo>xxxxxxxx</MemberNo>
  <Club>None</Club>
  <JoinDate>2013-05-14</JoinDate> 
  <Email>email@email.com</Email>
</MTSMember>

次に、この xml を処理して電子メール アドレスを取得する必要があります。しかし、私は以下のコードを使用して空の結果を得ています:

$xml_result = simplexml_load_string($xml_string_above);
echo $xml_result->MTSMember[0]->Email;

誰かが私を正しい方向に向けることができますか?さまざまなソリューションを試して、他のいくつかの回答を読みましたが、うまくいかないようです。

編集:これは私が試した最後のチュートリアルでしたhttp://blog.teamtreehouse.com/how-to-parse-xml-with-php5

4

3 に答える 3

2

それは次のようになります。

echo $xml_result->Email;

がmain としてsimplexml_load_string()ロードされているためです。MTSMemberSimpleXMLElement

コードパッドの例

于 2013-09-06T08:31:13.607 に答える
0

これを試して

$xml=new SimpleXMLElement($str);
$result=$xml->xpath('//Email');
foreach ($result as $Email)
  echo $Email . "<br>";

単に

$xml=new SimpleXMLElement($str);
echo $xml[0]->Email;

アップデート:

以下はあなたのコメントのためだけに、私が試したこと全体

$str='<?xml version="1.0" encoding="utf-8"?>
<MTSMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <LastName>Smith</LastName>
  <FirstName>john</FirstName>
  <MemberNo>xxxxxxxx</MemberNo>
  <Club>None</Club>
  <JoinDate>2013-05-14</JoinDate> 
  <Email>email@email.com</Email>
</MTSMember>';

$xml=new SimpleXMLElement($str);
echo $xml[0]->Email;
 //OR
$xml=new SimpleXMLElement($str);
$result=$xml->xpath('//Email');
foreach ($result as $Email)
  echo $Email . "<br>";

幸せになる :)

于 2013-09-06T08:46:33.243 に答える
0

これはうまくいくはずです

$xml = new SimpleXMLElement($xml_string_above);

$dc = $xml->email;
echo $dc;
于 2013-09-06T09:22:57.150 に答える