Categorygithub.com/joeychilson/xbrl
modulepackage
0.0.0-20241126154024-83b5e8d22779
Repository: https://github.com/joeychilson/xbrl.git
Documentation: pkg.go.dev

# README

xbrl

A simple parser for XBRL files.

Usage

func main() {
	file, err := os.Open("msft.xml")
	if err != nil {
		log.Fatal(err)
	}
	defer file.Close()

	var xbrl xbrl.XBRL
	if err := xml.NewDecoder(file).Decode(&xbrl); err != nil {
		log.Fatal(err)
	}

	fmt.Println("Facts:", len(xbrl.Facts))
}

Example fact from parsed XBRL

{
  "context": {
    "entity": "0000789019",
    "segments": [
      {
        "dimension": "DerivativeInstrumentRisk",
        "member": "InterestRateContract"
      },
      {
        "dimension": "DerivativeInstrumentsGainLossByHedgingRelationship",
        "member": "FairValueHedging"
      },
      {
        "dimension": "IncomeStatementLocation",
        "member": "NonoperatingIncomeExpense"
      }
    ],
    "period": {
      "startDate": "2023-10-01",
      "endDate": "2023-12-31"
    }
  },
  "concept": "ChangeInUnrealizedGainLossOnHedgedItemInFairValueHedge1",
  "value": -34000000,
  "decimals": "-6",
  "unit": "USD"
},

# Structs

Context represents the context of a fact in the XBRL data.
Fact represents a single fact in the XBRL data.
Period represents the period of a fact in the XBRL data.
Segment represents a segment in the context of a fact in the XBRL data.
XBRL represents the parsed XBRL data.