Retrieving the value of an attribute is similar to the previous
example in which we retrieved a node's text contents. In this case we'll
extract the value of the URI we added in the previous
section. Full code: AppendixG, Code for Retrieving Attribute Value Example.
The initial steps for this example are similar to the previous ones: parse
the doc, find the element you are interested in, then enter a function to
carry out the specific task required. In this case, we call
getReference:
void
getReference (xmlDocPtr doc, xmlNodePtr cur) {
xmlChar *uri;
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"reference"))) {
uri = xmlGetProp(cur, "uri");
printf("uri: %s\n", uri);
xmlFree(uri);
}
cur = cur->next;
}
return;
}
|
The key function is xmlGetProp, which returns an
xmlChar containing the attribute's value. In this case,
we just print it out.
| Note |
---|
If you are using a DTD that declares a fixed or
default value for the attribute, this function will retrieve it.
|
|