【问题标题】:Namespace prefix 'salesValue' is not defined in FlowgearFlowgear 中未定义命名空间前缀“salesValue”
【发布时间】: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


    【解决方案1】:

    自定义属性中的值应仅包含 xpath,并且自定义属性的名称应与表达式中的占位符匹配。

    您可以在https://developers.flowgear.net/kb/Node:XFormat#Examples找到文档

    【讨论】:

      【解决方案2】:

      Xpath 中元素的地址最多可以包含三个部分:

      1. 本地名称或 *(适用于所有)元素:foohtml - 这是强制性的
      2. 命名空间前缀/别名:n1:fooxhtml:html - 没有前缀,意味着没有命名空间
      3. 定义初始元素列表的轴:children::foofollowing-sibling::xhtml:div- 默认为children

      您的 XML 没有命名空间。它只是格式良好。因此,提供“salesValue”或“authorId”作为命名空间前缀是错误的。

      处理文档根目录中的值:

      • /root/salesValue
      • /root/authorId

      我认为 test1:在示例中,链接页面只是为 Xpath 表达式提供标识符,而不是它的一部分。

      【讨论】:

        猜你喜欢
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-16
        • 2011-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多