2019年4月29日月曜日

開発環境

プログラミング言語Go (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES) (Alan A.A. Donovan(著)、Brian W. Kernighan(著)、柴田 芳樹(翻訳)、丸善出版)の第5章(関数)、5.2(再帰)、練習問題5.3の解答を求めてみる。

コード

package main

import (
 "fmt"
 "os"

 "golang.org/x/net/html"
)

func main() {
 doc, err := html.Parse(os.Stdin)
 if err != nil {
  fmt.Fprintf(os.Stderr, "findlinks: %v\n", err)
  os.Exit(1)
 }
 visit(doc)
}

func visit(n *html.Node) {
 if n == nil {
  return
 }
 if n.Type == html.TextNode {
  m := n.Parent
  if !(m != nil && (m.Data == "script" || m.Data == "style")) {
   fmt.Print(n.Data)
  }
 }
 visit(n.FirstChild)
 visit(n.NextSibling)
}

入出力結果(cmd(コマンドプロンプト)、Terminal)

$ ./fetch https://example.com | go run sample3.go

    Example Domain

    
    
    
        




    Example Domain
    This domain is established to be used for illustrative examples in documents. You may use this
    domain in examples without prior coordination or asking for permission.
    More information...



$ ./fetch https://www.jp-kamimura.com | go run sample3.go

    
    
    
    
    
        
    サイト内ページ一覧 - KMI
    
    
    
    
  
  
    
        
    
    
    
    
    
  
  サイト内ページ一覧
  
    
      
        /Gaussian_blur
      
    
      
        /Gaussian_blurred
      
    
      
        /card_trick
      
    
      
        /card_trick_answer
      
    
      
        /contours
      
    
      
        /entry
      
    
      
        /finded_objects
      
    
      
        /finding_contours
      
    
      
        /finding_objects_in_an_image
      
    
      
        /interchange
      
    
      
        /interchanged
      
    
      
        /search4
      
    
      
        /self_quotient_image
      
    
      
        /self_quotient_image_normalized
      
    
      
        /sitemap.xml
      
    
      
        /viewlog
      
    
      
        /連長圧縮
      
    
      
        /連長圧縮した文字列の復号化の結果
      
    
      
        /連長圧縮の復号化
      
    
      
        /連長圧縮の結果
      
    
  

  


    
    
    

    
      
        home
      
      © 2018 kamimura
    
  
$ 

0 コメント:

コメントを投稿