【问题标题】:How to use substring() with Import.io?如何在 Import.io 中使用 substring()?
【发布时间】:2015-04-16 04:58:40
【问题描述】:

我在使用 XPath 和 import.io 时遇到了一些问题,希望您能帮助我。 :)

html代码:

<a href="page.php?var=12345">

目前,我设法通过以下方式提取了 href (page.php?var=12345) 的内容:

./td[3]/a[1]/@href

不过,我只想收集:12345

substring 可能是解决方案,但它似乎不适用于 import.io,因为我使用它...

substring(./td[3]/a[1]/@href,13)

你有什么想法吗?

非常感谢!

【问题讨论】:

    标签: xpath import.io


    【解决方案1】:

    尝试将其用于 xpath:(将字段选择为文本)

    .//*[@class='oeil']/a/@href
    

    然后将其用于您的正则表达式:

    ([^=]*)$
    

    这将为您提供您正在寻找的 ISBN 号。

    import.io 只支持 XPath 中返回节点列表的函数

    【讨论】:

    • 太棒了!有用!我只需要将你的正则表达式添加到我的 XPath 代码中,我就得到了 ISBN 号!非常感谢威尔逊! :)
    【解决方案2】:

    你的路径表达式很好,但也许应该是

    substring(./td[3]/a[1]/@href,14)
    

    “似乎不起作用”不是对错误的非常清楚的描述。您收到错误消息吗?输出错了吗?你有围绕你可以显示的路径表达式的任何代码吗?


    您可以使用子字符串,但使用substring-after() 会更好。

    substring-after(/a/@href,'=')
    

    假设您显示的小 sn-p 作为输入:

    <a href="page.php?var=12345"/>
    

    将选择

    12345
    

    并考虑到您输入的结构

    substring-after(./td[3]/a[1]/@href,'=')
    

    路径表达式中的前导 . 仅选择当前上下文节点的直接子 td 节点。我相信你知道自己在做什么。

    【讨论】:

    • 你好,马蒂亚斯!感谢您的快速回复。 :) 你说得对,“似乎不起作用”是-相当-模糊...好吧,当我输入路径表达式时,该行从结果页面中消失了...好像该功能不存在。这就是为什么我要问 import.io 是否接受 substring()。是的,我知道前导 .,但请放心,将 href 内容获取为 import.io 将每一行定义为行是可以正常工作的。也许使用页面会更容易:www (dot) edistat (dot) com/palmares.php
    • @Pierre 我想在 import.io 上重现您的问题。在哪里可以输入 XPath 表达式?
    • 为我给你的页面(Edistat.com)创建一个提取器,然后添加一个新列,选择一本书的链接,最后,在窗口的右上角,单击“screw-wrench”(靠近 CSS 按钮的左按钮)访问高级设置:XPath 和 regex 字段应该会出现。
    • Mathias,感谢您的帮助。威尔逊刚刚找到了解决方案。看来 import.io 确实不支持 XPath 中的函数。 :)
    • @Pierre 很好 - 我很高兴有人找到了解决方案。很高兴知道 import.io 有我见过的最不完整的 XPath 实现......
    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多