projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Document a lot of setCellProperties.
[pspp]
/
parse-xml.c
diff --git
a/parse-xml.c
b/parse-xml.c
index 9cf6694f91a008f64fef9f1a1dcb37192da289fb..70a7a89928617c8a854253f55d39586a6cf8ed16 100644
(file)
--- a/
parse-xml.c
+++ b/
parse-xml.c
@@
-159,21
+159,44
@@
print_attribute (xmlNode *node, const char *attr)
}
}
}
}
+static void
+print_xml (xmlDoc *doc, xmlNode *node)
+{
+ xmlBuffer *buf = xmlBufferCreate();
+ xmlNodeDump (buf, doc, node, 0, 1);
+ xmlBufferDump (stdout, buf);
+ xmlBufferFree (buf);
+ putchar ('\n');
+}
+
static void
print_element (xmlDoc *doc, xmlNode *node, const char *element)
{
for (; node; node = node->next)
{
if (node->name && !strcmp(element, (char *) node->name))
static void
print_element (xmlDoc *doc, xmlNode *node, const char *element)
{
for (; node; node = node->next)
{
if (node->name && !strcmp(element, (char *) node->name))
+ print_xml (doc, node);
+
+ print_element (doc, node->children, element);
+ }
+}
+
+static void
+print_id (xmlDoc *doc, xmlNode *node, const char *id)
+{
+ for (; node; node = node->next)
+ {
+ if (node->type == XML_ELEMENT_NODE)
{
{
- xmlBuffer *buf = xmlBufferCreate();
- xmlNodeDump (buf, doc, node, 0, 1);
- xmlBufferDump (stdout, buf);
- xmlBufferFree (buf);
- putchar ('\n');
+ const char *node_id = (char *) xmlGetProp (node, (xmlChar *) "id");
+ if (node_id && !strcmp (node_id, id))
+ {
+ print_xml (doc, node);
+ break;
+ }
}
}
- print_
element (doc, node->children, element
);
+ print_
id (doc, node->children, id
);
}
}
}
}
@@
-259,6
+282,8
@@
main (int argc, char **argv)
print_element (doc, root, argv[2] + 8);
else if (!strncmp(argv[2], "attr:", 5))
print_attribute (root, argv[2] + 5);
print_element (doc, root, argv[2] + 8);
else if (!strncmp(argv[2], "attr:", 5))
print_attribute (root, argv[2] + 5);
+ else if (!strncmp(argv[2], "id:", 3))
+ print_id (doc, root, argv[2] + 3);
else if (!strcmp(argv[2], "labels"))
print_labels (root);
else
else if (!strcmp(argv[2], "labels"))
print_labels (root);
else