A Microdata parser in Go
Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis.yml
AUTHORS
CREDITS
README.md
UNLICENSE
WAIVER
microdata.go
microdata_test.go

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.