summaryrefslogtreecommitdiffstats
path: root/lasso/id-wsf-2.0/data_service.c
diff options
context:
space:
mode:
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();