高层API-如何使用XML和操作变量


Highrise API - how to work with XML and manipulate variables

将curl与api令牌结合使用,并将XML元素放入工作变量中,或者至少以html格式查看。

以下是执行vardump:时使用的代码

$curl = curl_init('https://mywebsite.highrisehq.com/people.xml');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERPWD,'myapitoken12345:x');
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);
$data = curl_exec($curl);
curl_close($curl);  
$people_xml = new SimpleXMLElement($data);
var_dump($people_xml);

在执行var_dump时,我不熟悉输出。

object(SimpleXMLElement) #1 (2) { 
["@attributes"]=> array(1) { 
["type"]=> string(5) "array" } 
["person"]=> array(128) { ...  etc. etc. etc...

HighriseHQ.com显示的XML结构是这样的,用于提供如何检索元素的线索。

<people type="array">
  <person>
  <first-name>John</first-name>
  </person>
  <person>
  <first-name>Jane</first-name>
  </person>
</people>
  .... etc. etc.

如何或在哪里将表示$people = simplexml_load_string($xml);的部分转换为可以使用的变量?最终,我想显示、编辑或存储这些人,因为我将用高层同步网站数据库,这样笔记和联系人就不会过时。

找到了解决方案。

$curl = curl_init('https://my_website_goes_here.highrisehq.com/people.xml');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERPWD, 'my_api_token_goes_here:x');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
$data = curl_exec($curl);
curl_close($curl);
$people_xml = new SimpleXMLElement($data);
foreach($people_xml->person as $person) {
    echo "<strong>" . $person->{'first-name'} . " " . $person->{'last-name'} . "</strong><br />";
    echo "Title: " . $person->{'title'} . "<br />";
    echo "Background: " . $person->{'background'} . "<br />";
    echo "Email: " . $person->{'email-address'} . "<br />";
    echo "ID: " . $person->id . "<br /><br />";
}