从Globiflow中查找XML文档中的第n个标记实例

时间:2017-01-24 01:20:19

标签: php regex podio

我无法在Globiflow(对于Podio)中使用preg_match_all(),因为它们坚持使用preg_match_gf(),它具有与常规preg_match()类似的功能。我有以下代码:

preg_match_gf("/<zestimate><amount currency=\"USD\">(.*?)
<\/amount>/ism",*search_result_below*, 1)

我在搜索以下信息时搜索了一些随机属性(我已经大大简化了):

<comparables>
 <comp score="5.0">
  <zpid>########</zpid>
   <zestimate>
    <amount currency="USD">832447</amount>
   </zestimate>
  </comp>
 <comp score="11.0">
  <zpid>########</zpid>
   <zestimate>
    <amount currency="USD">526855</amount>
   </zestimate>
  </comp>
 <comp score="2.0">
  <zpid>########</zpid>
   <zestimate>
    <amount currency="USD">709637</amount>
   </zestimate>
  </comp>
 <comp score="6.0">
  <zpid>########</zpid>
   <zestimate>
    <amount currency="USD">607666</amount>
   </zestimate>
  </comp>
 <comp score="8.0">
  <zpid>########</zpid>
   <zestimate>
    <amount currency="USD">631700</amount>
   </zestimate>
  </comp>
</comparables>

我希望能够为每个属性选择<amount currency="USD">的每个实例,因为他们将通过自己的计算填充自己的字段。 <comp score="#.0">随每个查询而变化,行位置也是如此。我无法使用printecho,因为Globiflow认为它们是非法运营商。

3 个答案:

答案 0 :(得分:4)

您还可以使用preg_match_all_gf来获取每个金额,例如:

preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],1)
preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],2)
preg_match_all_gf('/<amount currency="USD">(.*?)<\/amount>/ism', [xml-token],3)

答案 1 :(得分:3)

Globiflow提供了一些您可能已经看过的regexparsing text from Podio的支持文档。还有一些有用的工具链接在那里,用于构建/测试可能有用的正则表达式。可以找到另一个工具here

关于Globiflow中preg_match_all缺乏支持或可能的替代方案,您可以尝试与tech support directly联系。尽管有关构建正则表达式的帮助超出了它们的范围,但它们应该能够告诉您是否支持全局匹配正则表达式的方法。

答案 2 :(得分:2)

我想在这里为你添加一些反馈,Josh。

使用PHP计算时,使用Globiflow的函数数量有限。 Globiflow有自己的帮助手册,其中包含一些非常有用的链接,可以帮助您解决计算问题。

&#34;使用PHP计算&#34;为您提供创建计算时可以使用的所有PHP函数的列表, &#34; PHP计算&amp;正则表达式示例&#34;显示一些&#34;现实生活&#34;其他Globiflow成员使用的示例和&#34; Podiing Text in Podio with Globiflow&#34;通过对preg_match_gf函数中返回内容的完整解释,您可以进一步了解所查找的信息。

供参考,以下是文档的链接

globiflow.com/help/

globiflow.com/help/using-php-calculations.php

globiflow.com/help/php-calculation-examples.php

globiflow.com/blog/parsing-text-in-podio-with-globiflow.php