A Microdata parser in Go
Go to file
Ian Davis ccf4160317
Merge pull request #2 from ricardoaat/patch-1
Update README.md
2018-05-01 15:29:04 +01:00
.travis.yml travis: improve travis config 2017-08-27 12:50:43 +01:00
AUTHORS Fixed breakage caused by h5 changes 2013-07-10 16:59:28 +01:00
CREDITS Fixed breakage caused by h5 changes 2013-07-10 16:59:28 +01:00
README.md Update README.md 2018-05-01 15:19:28 +01:00
UNLICENSE Fixed breakage caused by h5 changes 2013-07-10 16:59:28 +01:00
WAIVER Fixed breakage caused by h5 changes 2013-07-10 16:59:28 +01:00
microdata.go microdata: general cleanup and add travis config 2017-08-26 18:54:24 +01:00
microdata_test.go microdata: general cleanup and add travis config 2017-08-26 18:54:24 +01:00

README.md

microdata

A microdata parser in Go

See http://www.w3.org/TR/microdata/ for more information about Microdata

Build Status

Installation

Simply run

go get github.com/iand/microdata

Documentation is at http://godoc.org/github.com/iand/microdata

Usage

Example of parsing a string containing HTML:

package main

import (
	"github.com/iand/microdata"
	"net/url"
	"strings"
)

func main() {
	html := `<div itemscope>
	 <p>My name is <span itemprop="name">Elizabeth</span>.</p>
	</div>`

	baseUrl, _ := url.Parse("http://example.com/")
	p := microdata.NewParser(strings.NewReader(html), baseUrl)

	data, err := p.Parse()
	if err != nil {
		panic(err)
	}

	println("Name: ", data.Items[0].Properties["name"][0].(string))
}

Extract microdata from a webpage and print the result as JSON

package main

import (
    "bytes"
    "io/ioutil"
    "net/http"
    "net/url"
    "os"

    "github.com/iand/microdata"
)

func main() {

    baseUrl, _ := url.Parse("http://www.designhive.com/blog/using-schemaorg-microdata")

    resp, _ := http.Get(baseUrl.String())
    defer resp.Body.Close()

    html, _ := ioutil.ReadAll(resp.Body)

    p := microdata.NewParser(bytes.NewReader(html), baseUrl)

    data, _ := p.Parse()

    json, _ := data.JSON()
    os.Stdout.Write(json)
}

Authors

Contributors

Contributing

  • Do submit your changes as a pull request
  • Do your best to adhere to the existing coding conventions and idioms.
  • Do run go fmt on the code before committing
  • Do feel free to add yourself to the CREDITS file and the corresponding Contributors list in the README.md. Alphabetical order applies.
  • Don't touch the AUTHORS file. An existing author will add you if your contributions are significant enough.
  • Do note that in order for any non-trivial changes to be merged (as a rule of thumb, additions larger than about 15 lines of code), an explicit Public Domain Dedication needs to be on record from you. Please include a copy of the statement found in the WAIVER file with your pull request

License

This is free and unencumbered software released into the public domain. For more information, see http://unlicense.org/ or the accompanying UNLICENSE file.