2012-08-14 94 views
0

将xml拉入API的正确方法是什么?正确的方式来“拉”xml到API?

api代码中直xml的示例; (这是我们不希望,我们需要从文件中拉XML)

BigCommerce_Api::useXml(); 

$xml = "<?xml version="1.0" encoding="UTF-8"?> 
    <brand> 
     <name>Apple</name> 
     <search_keywords>computers laptops</search_keywords> 
    </brand>"; 

$result = BigCommerce_Api::createBrand($xml); 

我在通过FOPEN将在XML狡猾的尝试;

<? 
require_once 'BigCommerce/Api.php'; 

BigCommerce_Api::configure(array(
'store_url' => 'https://apiurl', 
'username' => 'admin', 
'api_key' => 'apitoken' 
)); 

$filename = "xmlfile.xml"; 
$handle = fopen($filename, "r"); 
$XPost = fread($handle, filesize($filename)); 
fclose($handle); 

BigCommerce_Api::useXml(); 

$xml = $XPost; 

$result = BigCommerce_Api::createProduct($xml); 

?> 

如果有人可以让我们知道如何把XML到useXML VAR适当,随时分享:)

(部分代码格式的应用引号之后结帐)

谢谢!

+1

欢迎来到SO!提示:不要使用短标签(例如,使用'<?php'代替'<?')。他们是有争议的,有一些证据表明他们会被弃用(如果他们还没有)。这个问题,FWIW,是“太本地化”或“不是真正的问题”之间的混乱。 – 2012-08-14 23:20:32

+0

您可能想查看[PHP DOM](http://php.net/manual/en/book.dom.php)。 – 2012-08-14 23:27:43

回答

5

我不知道为什么你让你的生活变得复杂:

BigCommerce_Api::useXml(); 

$xml = file_get_contents('xmlfile.xml'); 

$result = BigCommerce_Api::createBrand($xml); 

file_get_contents

+0

@Shaquin Trifonoff:de没有问题。 php.net前的子域名。它只是一面镜子,你只能看到和php.net相同的速度。 – hakre 2012-08-14 23:31:46

+0

这取决于你住在哪里。如果你身处世界的另一边,它会变得更慢。 (我不会因为我在新西兰而把链接指向http://nz.php.net)。另外,在使用Beta PHP.net时,会出现'This is a-progress-experiment experimental design'消息。 – 2012-08-14 23:33:20

+0

除非您的cookie未设置,否则您仍然会看到重定向到本地镜像。只是你会更快地看到它,因为在一天的特定时间,php.net的重定向速度很慢。 – hakre 2012-08-14 23:36:53