从div中获取没有子元素的文本

时间:2015-09-17 16:56:36

标签: jquery go

我试图在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尝试了很多不同的变体,但我无法弄清楚。

3 个答案:

答案 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()