2017-02-08 9 views
1

문서화 된 예제 here을보고 있지만 순전히 XML 트리를 반복하며 HTML은 반복하지 않습니다. 그러므로 나는 아직도 부분적으로 혼란 스럽다. 내가 이름으로 머리 태그 내의 특정 메타 태그를 찾기 위해 원하는 경우 예를 들어GoLang - HTML이있는 XmlPath 셀렉터

은, 내가 할 수없는 것? 대신, 머리 태그에있는 순서대로 찾을 필요가 있습니다. 이 경우, 나는 가정 8 메타 태그입니다 원하는 :

headTag, ERR : = getByID을 (xmlroot "/ 헤드/메타 [8] /")

그러나의 물론, 이것은 태그 이름에 getByID 함수를 사용하고 있습니다. "getBy ..."명령의 전체 목록은 무엇입니까?

그런 다음 문제는 메타 태그의 콘텐츠에 어떻게 액세스합니까? 문서에서는 내부 태그 노드 내용에 대한 예제 만 제공합니다. 그러나,이 예제 작업?

resp.Query = extractValue와 (headTag, @content)

에서 @ 선택이, 나를 혼란이 경우이 적합? 즉

:

  1. 은 적절한 HTML 예제를 사용할 수 있습니까?
  2. ID, 태그 등의 올바른 선택기 목록이 있습니까?
  3. 태그는 이름으로 찾을 수 있으며 내용은 내부 내용 태그에서 추출 할 수 있습니까?

대단히 감사합니다.

답변

4

XPath가 여기에 적합하지 않은 것으로 보입니다. HTML 용으로 설계된 goquery을 사용해야합니다.

package main 

import (
    "fmt" 

    "github.com/PuerkitoBio/goquery" 
) 

func main() { 
    doc, err := goquery.NewDocument("https://example.com") 
    if err != nil { 
     panic(err) 
    } 
    s := doc.Find(`html > head > meta[name="viewport"]`) 
    if s.Length() == 0 { 
     fmt.Println("could not find viewpoint") 
     return 
    } 
    fmt.Println(s.Eq(0).AttrOr("content", "")) 
} 
+0

가 대단히 감사합니다 : 여기

은 예입니다! – user1679669