-
Notifications
You must be signed in to change notification settings - Fork 0
/
converter.pl
139 lines (128 loc) · 2.95 KB
/
converter.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#===== perl script =======
#!/usr/bin/perl
open (ORGDB_PC,"<./list.txt");
@ODB_PC=<ORGDB_PC>;
close (ORGDB_PC);
$start_num="900";
$default_lang="en";
#############################
###########
foreach $rec_pc (@ODB_PC){
chomp($rec_pc);
($type,$a_type,$q_number,$q_text)=split(/\|/,$rec_pc);
if ($type eq "Q") {
$w_number=$start_num + $q_number;
$zz_qestions = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<gid><![CDATA[69]]></gid>
<type><![CDATA[$a_type]]></type>
<title><![CDATA[Q$w_number]]></title>
<question><![CDATA[$q_text]]></question>
<other><![CDATA[Y]]></other>
<mandatory><![CDATA[Y]]></mandatory>
<question_order><![CDATA[2]]></question_order>
<language><![CDATA[$default_lang]]></language>
<scale_id><![CDATA[0]]></scale_id>
<same_default><![CDATA[0]]></same_default>
<relevance><![CDATA[1]]></relevance>
</row>^;
$write_line_Q = "$write_line_Q$zz_qestions";
$zz_attr = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<attribute><![CDATA[1]]></attribute>
<value><![CDATA[1]]></value>
</row>^;
$write_line_attr = "$write_line_attr$zz_attr";
$lcount=1;
}
if ($type eq "A") {
$zz_answer = qq^
<row>
<qid><![CDATA[$w_number]]></qid>
<code><![CDATA[A$lcount]]></code>
<answer><![CDATA[$q_text]]></answer>
<assessment_value><![CDATA[0]]></assessment_value>
<sortorder><![CDATA[$lcount]]></sortorder>
<language><![CDATA[$default_lang]]></language>
<scale_id><![CDATA[0]]></scale_id>
</row>^;
$write_line_answer = "$write_line_answer$zz_answer";
$lcount++;
}
############################################
}
print qq^<?xml version="1.0" encoding="UTF-8"?>
<document>
<LimeSurveyDocType>Group</LimeSurveyDocType>
<DBVersion>164</DBVersion>
<languages>
<language>en</language>
</languages>
<groups>
<fields>
<fieldname>gid</fieldname>
<fieldname>group_name</fieldname>
<fieldname>language</fieldname>
</fields>
<rows>
<row>
<gid><![CDATA[69]]></gid>
<group_name><![CDATA[GROUP_NAME]]></group_name>
<language><![CDATA[$default_lang]]></language>
</row>
</rows>
</groups>
<questions>
<fields>
<fieldname>qid</fieldname>
<fieldname>gid</fieldname>
<fieldname>type</fieldname>
<fieldname>title</fieldname>
<fieldname>question</fieldname>
<fieldname>other</fieldname>
<fieldname>mandatory</fieldname>
<fieldname>question_order</fieldname>
<fieldname>language</fieldname>
<fieldname>scale_id</fieldname>
<fieldname>same_default</fieldname>
<fieldname>relevance</fieldname>
</fields>
<rows>
^;
print $write_line_Q;
print qq^
</rows>
</questions>
^;
print qq^<answers>
<fields>
<fieldname>qid</fieldname>
<fieldname>code</fieldname>
<fieldname>answer</fieldname>
<fieldname>assessment_value</fieldname>
<fieldname>sortorder</fieldname>
<fieldname>language</fieldname>
<fieldname>scale_id</fieldname>
</fields>
<rows>
^;
print $write_line_answer;
print qq^
</rows>
</answers>
<question_attributes>
<fields>
<fieldname>qid</fieldname>
<fieldname>attribute</fieldname>
<fieldname>value</fieldname>
<fieldname>language</fieldname>
</fields>
<rows>^;
print $write_line_attr;
print qq^
</rows>
</question_attributes>
</document>
^;