如何将Heredocs与XPath一起使用



我遇到了以下问题:

有一个这样的XPath(正如你所看到的相当长):

'//h2[contains(text(),"Kontakt")]/../following-sibling::div[contains(@class,"body") and child::dl[contains(@class,"horizontal")]]'

现在,为了使其更具可读性,我尝试使用 Heredoc 将其拆分为多行:

xpath = <<-XPath.gsub(/s+/,'')
  //h2[contains(text(),"Kontakt")]/..
  /following-sibling::div[contains(@class,"body") and
  child::dl[contains(@class,"horizontal")]]
XPath

但是,问题是.gsub(/s+/,'')将删除所有空格。我已经尝试了不同的组合,只是删除n.strip,但我似乎找不到输出 xpath 的解决方案,如上所示。

有什么吗?

您尝试以不同的方式处理相同的情况(第 1→2 个字符串和第 2→3 个字符串):在第一个案例中连接字符串,在后一种情况下插入空格。需要一个人工智能来理解你的意思:)

我建议您不要在空格位置断开字符串。在这种情况下/s*ns*|As+|s+Z/m正则表达式(删除用空格、开头和尾随空格包围的回车符)将起作用:

xpath = <<-XPath.gsub(/s*ns*|As+|s+Z/m,'')
  //h2[contains(text(),"Kontakt")]/..
  /following-sibling::div[contains(@class,"body") and child
  ::dl[contains(@class,"horizontal")]]
XPath
# "//h2[contains(text(),"Kontakt")]/../following-sibling::div[contains(@class,"body") and child::dl[contains(@class,"horizontal")]]"

相关内容

  • 没有找到相关文章

最新更新