diff --git a/admin/admin.php b/admin/admin.php
index 7dfe3f134a3..fa7ff90d3dc 100644
--- a/admin/admin.php
+++ b/admin/admin.php
@@ -197,6 +197,11 @@
if(hasRight($surveyid,'export')) {include('export_structure_quexml.php');}
else { include('access_denied.php');}
}
+ elseif ($action == 'exportstructurexml')
+ {
+ if(hasRight($surveyid,'export')) {include('export_structure_xml.php');}
+ else { include('access_denied.php');}
+ }
elseif ($action == 'exportstructurecsvGroup')
{
if(hasRight($surveyid,'export')) {include('dumpgroup.php');}
diff --git a/admin/export_data_functions.php b/admin/export_data_functions.php
index 490e63cddc6..0b2e7ae4280 100644
--- a/admin/export_data_functions.php
+++ b/admin/export_data_functions.php
@@ -456,4 +456,40 @@ function spss_getquery() {
}
return $query;
}
-?>
\ No newline at end of file
+
+function BuildXMLFromQuery($xmlwriter, $Query)
+{
+ global $dbprefix, $connect;
+ $QueryResult = db_execute_assoc($Query) or safe_die ("ERROR: $QueryResult
".$connect->ErrorMsg()); //safe
+ preg_match('/FROM (\w+)( |,)/', $Query, $MatchResults);
+ $TableName = $MatchResults[1];;
+ if ($dbprefix)
+ {
+ $TableName = substr($TableName, strlen($dbprefix), strlen($TableName));
+ }
+ if ($QueryResult->RecordCount()>0)
+ {
+ $xmlwriter->startElement($TableName);
+ $xmlwriter->startElement('fields');
+ $Columninfo = $QueryResult->fields;
+ foreach ($Columninfo as $fieldname=>$value)
+ {
+ $xmlwriter->writeElement('fieldname',$fieldname);
+ }
+ $xmlwriter->endElement(); // close columns
+ $xmlwriter->startElement('rows');
+ while ($Row = $QueryResult->FetchRow())
+ {
+ $xmlwriter->startElement('row');
+ foreach ($Row as $Key=>$Value)
+ {
+ $xmlwriter->startElement('data');
+ $xmlwriter->writeCData($Value);
+ $xmlwriter->endElement();
+ }
+ $xmlwriter->endElement(); // close row
+ }
+ $xmlwriter->endElement(); // close rows
+ $xmlwriter->endElement(); // close tablename
+ }
+}
diff --git a/admin/export_structure_xml.php b/admin/export_structure_xml.php
new file mode 100644
index 00000000000..e2d37a86c45
--- /dev/null
+++ b/admin/export_structure_xml.php
@@ -0,0 +1,179 @@
+\n"
+ ."
" + .$clang->gT("Export Survey")." | |
\n"
+ ." " + .$clang->gT("Error")." \n" + .$clang->gT("No SID has been provided. Cannot dump survey")." \n" + ." \n" + ."\t |