{"id":16239773,"url":"https://github.com/nopnop2002/esp-idf-xml","last_synced_at":"2026-02-27T03:02:52.351Z","repository":{"id":108987892,"uuid":"316880798","full_name":"nopnop2002/esp-idf-xml","owner":"nopnop2002","description":"Example of XML parser with ESP-IDF.","archived":false,"fork":false,"pushed_at":"2025-11-27T23:28:11.000Z","size":44,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-30T12:58:48.355Z","etag":null,"topics":["esp-idf","esp32","xml","xml-parser"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nopnop2002.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-11-29T05:11:38.000Z","updated_at":"2025-11-27T23:28:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"aa6e27e1-9516-40db-a0ae-79eae56c8d34","html_url":"https://github.com/nopnop2002/esp-idf-xml","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nopnop2002/esp-idf-xml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-xml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-xml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-xml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-xml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nopnop2002","download_url":"https://codeload.github.com/nopnop2002/esp-idf-xml/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nopnop2002%2Fesp-idf-xml/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29883111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["esp-idf","esp32","xml","xml-parser"],"created_at":"2024-10-10T13:45:08.349Z","updated_at":"2026-02-27T03:02:52.336Z","avatar_url":"https://github.com/nopnop2002.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esp-idf-xml\nIDF component registry includes Expat XML Parsing C Library.   \nhttps://components.espressif.com/components/espressif/expat   \n\nHowever, unfortunately there is no sample code for ESP-IDF.   \nThis is example XML parser using Expat.   \n\n# Software requirements\nesp-idf v4.4/v5.x.   \n\n# Installation\n```\ngit clone https://github.com/nopnop2002/esp-idf-xml\ncd esp-idf-xml\nchmod 777 ./getpem.sh\n./getpem.sh\nidf.py menuconfig\nidf.py flash monitor\n```\n\n# Configuration\nSet the following items using menuconfig.\n- CONFIG_ESP_WIFI_SSID   \nSSID of your wifi.\n- CONFIG_ESP_WIFI_PASSWORD   \nPASSWORD of your wifi.\n- CONFIG_ESP_MAXIMUM_RETRY   \nMaximum number of retries when connecting to wifi.\n\n![config-main](https://user-images.githubusercontent.com/6020549/100534161-2fc24c80-324f-11eb-9aa1-5db665283741.jpg)\n![config-app](https://user-images.githubusercontent.com/6020549/100534164-32bd3d00-324f-11eb-98f0-9218125ad7c4.jpg)\n\n# XML source\nXML source for this projec is BBC Weather Forecast for London.   \nhttps://weather-broker-cdn.api.bbci.co.uk/en/forecast/rss/3day/2643743\n\n\n# Console output\n```\nI (8029) HTTP: tag=[rss/channel/title]\nI (8029) HTTP: element=[BBC Weather - Forecast for  London, GB]\nI (8039) HTTP: tag=[rss/channel/link]\nI (8039) HTTP: element=[https://www.bbc.co.uk/weather/2643743]\nI (8049) HTTP: tag=[rss/channel/description]\nI (8049) HTTP: element=[3-day forecast for London from BBC Weather, including weather, temperature and wind information]\nI (8069) HTTP: tag=[rss/channel/language]\nI (8069) HTTP: element=[en]\nI (8069) HTTP: tag=[rss/channel/copyright]\nI (8079) HTTP: element=[Copyright: (C) British Broadcasting Corporation, see https://www.bbc.co.uk/usingthebbc/terms-of-use/usingthebbc/terms-of-use/#d7c3c6fd18ea551b9f3f26ecbd4612be for more details]\nI (8099) HTTP: tag=[rss/channel/pubDate]\nI (8099) HTTP: element=[Wed, 11 May 2022 05:22:20 GMT]\nI (8109) HTTP: tag=[rss/channel/dc:date]\nI (8109) HTTP: element=[2022-05-11T05:22:20Z]\nI (8119) HTTP: tag=[rss/channel/dc:language]\nI (8119) HTTP: element=[en]\n```\n\n# How to change XML source\n- Edit getpem.sh and set the URL.\n```\nopenssl s_client -showcerts -connect weather-broker-cdn.api.bbci.co.uk:443 \u003c/dev/null \u003ehoge\n#openssl s_client -showcerts -connect www.espn.com:443 \u003c/dev/null \u003ehoge\n```\n\n- Run getpem.sh to get the public key.\n```\n$ ./getpem.sh\ndepth=2 OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign\nverify return:1\ndepth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign RSA OV SSL CA 2018\nverify return:1\ndepth=0 C = GB, ST = London, L = London, O = British Broadcasting Corporation, CN = www.bbc.co.uk\nverify return:1\nDONE\n-----BEGIN CERTIFICATE-----\nMIIETjCCAzagAwIBAgINAe5fFp3/lzUrZGXWajANBgkqhkiG9w0BAQsFADBXMQsw\nCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEQMA4GA1UECxMH\nUm9vdCBDQTEbMBkGA1UEAxMSR2xvYmFsU2lnbiBSb290IENBMB4XDTE4MDkxOTAw\nMDAwMFoXDTI4MDEyODEyMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290\nIENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNp\nZ24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2\nhMoonv0FdhHFrYhy/EYCQ8eyip0EXyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9\nDCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+JJ5U4nwbXPsnLJlkNc96wyOkm\nDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8unPvQu7/1PQDh\nBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv\nriBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZp\nhYIXAgMBAAGjggEiMIIBHjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUj/BLf6guRSSuTVD6Y5qL3uLdG7wwHwYDVR0jBBgwFoAUYHtm\nGkUNl8qJUC99BM00qP/8/UswPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFo\ndHRwOi8vb2NzcC5nbG9iYWxzaWduLmNvbS9yb290cjEwMwYDVR0fBCwwKjAooCag\nJIYiaHR0cDovL2NybC5nbG9iYWxzaWduLmNvbS9yb290LmNybDBHBgNVHSAEQDA+\nMDwGBFUdIAAwNDAyBggrBgEFBQcCARYmaHR0cHM6Ly93d3cuZ2xvYmFsc2lnbi5j\nb20vcmVwb3NpdG9yeS8wDQYJKoZIhvcNAQELBQADggEBACNw6c/ivvVZrpRCb8RD\nM6rNPzq5ZBfyYgZLSPFAiAYXof6r0V88xjPy847dHx0+zBpgmYILrMf8fpqHKqV9\nD6ZX7qw7aoXW3r1AY/itpsiIsBL89kHfDwmXHjjqU5++BfQ+6tOfUBJ2vgmLwgtI\nfR4uUfaNU9OrH0Abio7tfftPeVZwXwzTjhuzp3ANNyuXlava4BJrHEDOxcd+7cJi\nWOx37XMiwor1hkOIreoTbv3Y/kIvuX1erRjvlJDKPSerJpSZdcfL03v3ykzTr1Eh\nkluEfSufFT90y1HonoMOFm8b50bOI7355KKL0jlrqnkckSziYSQtjipIcJDEHsXo\n4HA=\n-----END CERTIFICATE-----\n```\n\n- Edit main/http_client.c and set the URL.\n```\nstrcpy(url, \"https://weather-broker-cdn.api.bbci.co.uk/en/forecast/rss/3day/2643743\");\n//strcpy(url, \"https://www.espn.com/espn/rss/news\");\n```\n\n- Build firmware\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-xml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnopnop2002%2Fesp-idf-xml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnopnop2002%2Fesp-idf-xml/lists"}