diff --git a/src/htsmsg_xml.c b/src/htsmsg_xml.c index e9f69165..0dc40332 100644 --- a/src/htsmsg_xml.c +++ b/src/htsmsg_xml.c @@ -890,4 +890,21 @@ htsmsg_xml_get_cdata_u32(htsmsg_t *tags, const char *name, uint32_t *u32) return htsmsg_get_u32(sub, "cdata", u32); } +/* + * Get tag attribute + */ +const char * +htsmsg_xml_get_attr_str ( htsmsg_t *tag, const char *name ) +{ + htsmsg_t *attr = htsmsg_get_map(tag, "attrib"); + if (attr) return htsmsg_get_str(tag, name); + return NULL; +} +int +htsmsg_xml_get_attr_u32 ( htsmsg_t *tag, const char *name, uint32_t *ret ) +{ + htsmsg_t *attr = htsmsg_get_map(tag, "attrib"); + if (attr) return htsmsg_get_u32(attr, name, ret); + return HTSMSG_ERR_FIELD_NOT_FOUND; +} diff --git a/src/htsmsg_xml.h b/src/htsmsg_xml.h index 16e548c2..96b88860 100644 --- a/src/htsmsg_xml.h +++ b/src/htsmsg_xml.h @@ -25,5 +25,7 @@ htsmsg_t *htsmsg_xml_deserialize(char *src, char *errbuf, size_t errbufsize); const char *htsmsg_xml_get_cdata_str (htsmsg_t *tags, const char *tag); int htsmsg_xml_get_cdata_u32 (htsmsg_t *tags, const char *tag, uint32_t *u32); +const char *htsmsg_xml_get_attr_str(htsmsg_t *tag, const char *attr); +int htsmsg_xml_get_attr_u32(htsmsg_t *tag, const char *attr, uint32_t *u32); #endif /* HTSMSG_XML_H_ */