summaryrefslogtreecommitdiffstats
path: root/lasso/id-wsf-2.0/data_service.c
diff options
context:
space:
mode:
authorDamien Laniel <dlaniel@entrouvert.com>2008-05-26 16:43:22 +0000
committerDamien Laniel <dlaniel@entrouvert.com>2008-05-26 16:43:22 +0000
commit2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52 (patch)
treeccfbf8b4c839decf990b19fd8e879467ca82c862 /lasso/id-wsf-2.0/data_service.c
parent2c426974492cda0185bb102281d5f7de44776dc4 (diff)
downloadlasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.tar.gz
lasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.tar.xz
lasso-2e7bd59c876ced9d5b0cbd1b2c6558b6a78a5a52.zip
allow getting xpath attributes like /node/@attr
Diffstat (limited to 'lasso/id-wsf-2.0/data_service.c')
-rw-r--r--lasso/id-wsf-2.0/data_service.c10
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();