{
for (xmlNode *node = a_node; node; node = node->next)
{
- if (node->properties)
+ if (node->properties && node->parent->type != XML_DOCUMENT_NODE)
{
printf ("%s", node->name);
for (xmlAttr *attr = node->properties; attr; attr = attr->next)
}
}
+static void
+print_attribute (xmlNode *node, const char *attr)
+{
+ for (; node; node = node->next)
+ {
+ const char *s = (char *) xmlGetProp (node, (xmlChar *) attr);
+ if (s)
+ puts (s);
+
+ print_attribute (node->children, attr);
+ }
+}
+
static void
usage (void)
{
print_containment (root);
else if (!strcmp(argv[2], "attributes"))
print_attributes (root);
+ else if (!strncmp(argv[2], "attr:", 5))
+ print_attribute (root, argv[2] + 5);
else if (!strcmp(argv[2], "labels"))
print_labels (root);
else