{"id":37175041,"url":"https://github.com/vgratian/shallowxml","last_synced_at":"2026-01-14T20:26:53.315Z","repository":{"id":160365246,"uuid":"309187374","full_name":"vgratian/shallowXML","owner":"vgratian","description":"shallow XML parser","archived":false,"fork":false,"pushed_at":"2020-11-01T22:09:53.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-19T05:27:38.000Z","etag":null,"topics":["xml","xml-parser"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vgratian.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-01T20:59:41.000Z","updated_at":"2020-11-01T22:09:55.000Z","dependencies_parsed_at":"2023-05-24T18:15:27.049Z","dependency_job_id":null,"html_url":"https://github.com/vgratian/shallowXML","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vgratian/shallowXML","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgratian%2FshallowXML","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgratian%2FshallowXML/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgratian%2FshallowXML/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgratian%2FshallowXML/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vgratian","download_url":"https://codeload.github.com/vgratian/shallowXML/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vgratian%2FshallowXML/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["xml","xml-parser"],"created_at":"2026-01-14T20:26:52.780Z","updated_at":"2026-01-14T20:26:53.308Z","avatar_url":"https://github.com/vgratian.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## shallowXML\nA simple XML parser that first creates a Root element and then adds child elements. I started learning Go only yesteray, so I couldn't really do everything the way I wanted (e.g. I did't konw how to declare methods, so I used functions instead).\n\nThe end-goal is to write a parser that is linear in time to the size of the input string and also stores nothing more than that one string in memory (the way I'll do it is to store the string in the root element and use pointers in all of it's children.).\n\nThe goal is also to have API similiar to that of [lxml](https://lxml.de/) / [elementree](http://effbot.org/zone/element.htm).\n\n\n## How to use\n\nFirst argument should be path of an XML file, e.g.:\n\n```shell\n$ go run parser.go example.xml\n```\n\nand output is:\n\n```bash\n\u003cstaff\u003e ()  2\n | \u003cperson\u003e ()  3\n |  | \u003cfirstname\u003e (Jack)  0\n |  | \u003clastname\u003e (McGreen)  0\n |  | \u003caddress\u003e ()  2\n |  |  | \u003ccity\u003e (London)  0\n |  |  | \u003ccountry\u003e (UK)  0\n | \u003cperson\u003e ()  2\n |  | \u003cfirstname\u003e (Anna)  0\n |  | \u003clastname\u003e (Krikorian)  0\n```\n\n## Disclaimer\n\nOf course this is just a toy-project / draft. No checks are done to detect invalid XML syntax, no error handling. XML elements with attributes (e.g. `\u003cstaff size=\"2\"\u003e`) will not be recognized.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgratian%2Fshallowxml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvgratian%2Fshallowxml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvgratian%2Fshallowxml/lists"}