From dcbcf4fe35a233c78b770ab06d7dc83c04f7b6c4 Mon Sep 17 00:00:00 2001 From: Adam Sutton Date: Wed, 20 Jun 2012 12:47:03 +0100 Subject: [PATCH] Some additional XML helpers. --- src/htsmsg_xml.c | 17 +++++++++++++++++ src/htsmsg_xml.h | 2 ++ 2 files changed, 19 insertions(+) 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_ */