我试图在goquery
的帮助下解析这个html。我无法弄清楚如何解析字符串"我需要的字符串"扔掉其他一切。
<div class="outter-class">
<h1 class="inner-class">
The string I need
<span class="other-class" >Some value I don't need</span>
<span class="other-class2" title="sometitle"></span>
</h1>
<div class="other-class3">
<h3>Some heading i don't need</h3>
</div>
</div>
我尝试使用类似https://stackoverflow.com/a/8851526/989919之类的内容,将其调整为goquery:
test := s.Clone().Children().Empty().End().Text()
fmt.Println(test.Text())
但这并不奏效。我从API尝试了很多不同的变体,但我无法弄清楚。
答案 0 :(得分:4)
我开始工作的方式是:
// End() lets us jump back to the h1 selection to get its text
text := doc.Find("h1").Children().Remove().End().Text()
text = strings.TrimSpace(text)
fmt.Println(text)
输出:
我需要的字符串
代码从h1元素中删除子节点(span元素)以获得正确的输出。可能有一种更简单的方法,但它确实有效。 :)
答案 1 :(得分:0)
我发现实现此目标的最佳方法:
text := dom.Find(".inner-class").Nodes[0].FirstChild.Data
我已经花了很多时间在goquery下使用HTML解析库,所以这对我来说似乎并不算是麻烦,但对某些人来说可能是
答案 2 :(得分:-2)
怎么样:
doc.Find(".outter-class .inner-class").Children().First().Text()