我遇到以下问题:
像这样有一个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的解决方案,如上所示。
有什么想法?
答案 0 :(得分:0)
您尝试以不同的方式处理相同的情况(第1→第2个字符串和第2个→第3个字符串):在第一种情况下连接字符串并在后者中插入空格。需要AI来理解你的意思:)
我建议你不要在太空位置打破弦乐。在这种情况下/\s*\n\s*|\A\s+|\s+\Z/m
regexp(删除用空格,开始和尾随空格包围的回车)将起作用:
xpath = <<-XPath.gsub(/\s*\n\s*|\A\s+|\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\")]]"