A Microdata parser in Go
Go to file
Ian Davis d3f130af1c
Updated github workflows
2023-11-25 13:56:48 +00:00
.github/workflows Updated github workflows 2023-11-25 13:56:48 +00: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 Format examples and lint markdown 2018-09-14 13:45:02 +02: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
go.mod Update to go1.21 2023-11-25 13:00:28 +00:00
go.sum Update to go1.21 2023-11-25 13:03:07 +00:00
microdata.go ensure itemscope always starts a new item 2020-10-11 12:30:55 -04:00
microdata_test.go ensure itemscope always starts a new item 2020-10-11 12:30:55 -04: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.