使用PHP从XML获取属性

时间:2010-05-07 23:56:43

标签: php xml

我正在使用PHP的SimpleXML从以下XML中获取一些值;

- <entry>
  <id>http://www.google.com/m8/feeds/contacts/email_address%40gmail.com/base/0</id> 
  <updated>2010-01-14T22:06:26.565Z</updated> 
  <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/contact/2008#contact" /> 
  <title type="text">Customer Name</title> 
  <link rel="http://schemas.google.com/contacts/2008/rel#edit-photo" type="image/*" href="http://www.google.com/m8/feeds/photos/media/email_address%40gmail.com/0/34h5jh34j5kj3444" /> 
  <link rel="self" type="application/atom+xml" href="http://www.google.com/m8/feeds/contacts/email_address%40gmail.com/full/0" /> 
  <link rel="edit" type="application/atom+xml" href="http://www.google.com/m8/feeds/contacts/email_address%40gmail.com/full/0/5555" /> 
  <gd:email rel="http://schemas.google.com/g/2005#other" address="customer@gmail.com" primary="true" /> 
  </entry>

我可以获得标题:

$xml = new SimpleXMLElement($response_h1);

foreach ($xml->entry as $entry) {
   echo $entry->title, '<br />';
}

但是如何获得address =“customer@gmail.com”属性?

1 个答案:

答案 0 :(得分:1)

您的命名空间无效。如果没有命名空间,您应该能够获取这样的地址,

$email = (string)$xml->email['address'];

SimpleXML中存在一些错误。元素使用成员语法“ - &gt;”但只能使用数组语法“[]”访问属性。