diff options
| author | Damien Laniel <dlaniel@entrouvert.com> | 2008-05-26 16:43:22 +0000 |
|---|---|---|
| committer | Damien Laniel <dlaniel@entrouvert.com> | 2008-05-26 16:43:22 +0000 |
| commit | 2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52 (patch) | |
| tree | ccfbf8b4c839decf990b19fd8e879467ca82c862 | |
| parent | 2c426974492cda0185bb102281d5f7de44776dc4 (diff) | |
| download | lasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.tar.gz lasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.tar.xz lasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.zip | |
allow getting xpath attributes like /node/@attr
| -rw-r--r-- | lasso/id-wsf-2.0/data_service.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lasso/id-wsf-2.0/data_service.c b/lasso/id-wsf-2.0/data_service.c index 966f7fca..83095b7f 100644 --- a/lasso/id-wsf-2.0/data_service.c +++ b/lasso/id-wsf-2.0/data_service.c @@ -242,8 +242,14 @@ lasso_idwsf2_data_service_parse_query_items(LassoIdWsf2DataService *service) data_item = LASSO_IDWSF2_DSTREF_ITEM_DATA(data); for (i = 0; i < xpathObj->nodesetval->nodeNr; i++) { node = xpathObj->nodesetval->nodeTab[i]; - LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any = g_list_append( - LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any, xmlCopyNode(node, 1)); + if (node->type == XML_ATTRIBUTE_NODE) { + LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any = g_list_append( + LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any, + xmlNewText(xmlGetProp(node->parent, node->name))); + } else { + LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any = g_list_append( + LASSO_IDWSF2_DSTREF_APP_DATA(data_item)->any, xmlCopyNode(node, 1)); + } } } else if (xpathObj && xpathObj->type == XPATH_STRING) { data = lasso_idwsf2_dstref_data_new(); |
