0
4

2 回答 2

0

我可以向您建议两种方法,但这取决于:每个<a>标签是否都有 href 并带有两个""包围它们,或者它只是一个带有 ssLINK

认为

output = []

input_text = '<a href=""ssLINK/prof-steve-jackson"">Professor Steve Jackson</a>'

1)如果标签只有带ahref ,那么就做""ssLink

Nokogiri::HTML(input_text).css('a[href=""]').each do |nokogiri_obj|
  output << nokogiri_obj.text
end

# => output = ["Professor Steve Jackson"]

2)如果所有a标签都有href,""那么你可以试试这个

nokogiri_a_tag_obj = Nokogiri::HTML(input_text).css('a[href=""]')
nokogiri_a_tag_obj.each do |nokogiri_obj|
  output << nokogiri_obj.text if nokogiri_obj.has_attribute?('sslink')
end

# => output = ["Professor Steve Jackson"]

如果使用第二种方法

input_text = '<a href=""ssLINK/prof-steve-jackson"">Professor Steve Jackson</a> Some other Text<a href=""abcd"">Second link</a>'

那么输出也将是["Professor Steve Jackson"]

于 2013-11-13T14:37:50.477 回答
0

您的内容不是 XML,因此任何使用 XML 工具(如 XSLT 和 XPath)解决问题的尝试都注定要失败。使用正则表达式方法,例如 awk 或 Perl。但是,对我来说如何匹配并不是很明显

<a href="" sometext"">

没有也匹配

<a href="" sometext="">

所以我们需要更多地了解您尝试解析的这种语法。

于 2013-11-13T16:12:45.057 回答