【发布时间】:2014-10-06 08:23:12
【问题描述】:
我决定使用 XFormat 节点从使用 PHP 的 API 调用中获取我的 JSON POSTFIELDS。下边是 XML 数据从 JSON 字符串转换为 XMLDocument 的结果:
<root>
<salesValue>5000</salesValue>
<authorId>2</authorId>
</root>
阅读https://developers.flowgear.net/kb/Node:XPath_Match 我想出了以下xpaths 获取我感兴趣的值并将它们注入我的 SQL 查询中:
- salesValue:root/salesValue
- authorId:root/authorId
我已选择 XML 作为该属性的转义值,不确定它应该是哪一个。我得到的错误是:
(XFormat 1.0.0.1):未定义命名空间前缀“salesValue”。
我想问题在于我如何格式化我的 xpath 以尝试获取这些值。我的 XFormat 节点的表达式属性中的 SQL Query 如下所示:
SELECT `Book`.`id` , `Book`.`name` , `Book`.`isbn` , `Book`.`quantity_in_stock` , `Book`.`price` , (`Book`.`quantity_in_stock` * `Book`.`price`) AS `sales`,
concat(`Author`.`name`, ' ', `Author`.`surname`) AS `author` FROM `books` AS `Book` LEFT JOIN authors AS `Author` ON ( `Book`.`author_id` = `Author`.`id` )
WHERE (`Book`.`quantity_in_stock` * `Book`.`price`) > {salesValue} AND `Book`.`author_id` = " {authorId}"
如果我在该查询中注入这些值,我将能够继续前进。下面是我用来通过 API 调用 WORKFLOW 的脚本:
try{
$results = invokeFlowgear("https://domain.flowgear.io/authorbooksaleslist", "login", "passwrd", 30,
array(
'salesValue' => 5000.00,
'authorId' => 2
));
var_dump($results);
}catch(Exception $exc){ print $exc->getMessage(); }
提前谢谢你...
【问题讨论】:
标签: php xml json xpath flowgear