code
1
from
xml.dom
import
minidom
2
3 def createDocument(strContentName, strDeveloper, strFile, strOutputFile):
4 doc = minidom.Document()
5
6 # Create slim
7 slim = doc.createElement( " slim " )
8 slim.setAttribute( " slimEd " , " 1.0 " )
9 slim.setAttribute( " xmlns " , " www.sap.com/slim " )
10
11 # Create header
12 header = doc.createElement( " header " )
13
14 # Create locale
15 locale = doc.createElement( " locale " )
16
17 # Create develLc
18 develLc = doc.createElement( " develLc " )
19 develLc.appendChild(doc.createTextNode( " en++ " ))
20
21 # Create contentLc
22 contentLc = doc.createElement( " contentLc " )
23 contentLc.appendChild(doc.createTextNode( " en++ " ))
24
25 locale.appendChild(develLc)
26 locale.appendChild(contentLc)
27
28 header.appendChild(locale)
29
30 # objType
31 objType = doc.createElement( " objType " )
32 objType.appendChild(doc.createTextNode( " line " ))
33 header.appendChild(objType)
34
35 # collection
36 collection = doc.createElement( " collection " )
37 collection.appendChild(doc.createTextNode( " BUSMB_SBO_iPhone_10 " ))
38 header.appendChild(collection)
39
40 # domain
41 domain = doc.createElement( " domain " )
42 domain.appendChild(doc.createTextNode( " FI " ))
43 header.appendChild(domain)
44
45 # contentName
46 contentName = doc.createElement( " contentName " )
47 contentName.appendChild(doc.createTextNode(strContentName))
48 header.appendChild(contentName)
49
50 # defaults
51 defaults = doc.createElement( " defaults " )
52
53 # maxL
54 maxL = doc.createElement( " maxL " )
55 maxL.appendChild(doc.createTextNode( " 255 " ))
56 defaults.appendChild(maxL)
57 header.appendChild(defaults)
58
59 # workflow
60 workflow = doc.createElement( " workflow " )
61
62 # contacts
63 contacts = doc.createElement( " contacts " )
64
65 # developer
66 developer = doc.createElement( " developer " )
67 developer.appendChild(doc.createTextNode(strDeveloper))
68 contacts.appendChild(developer)
69 workflow.appendChild(contacts)
70 header.appendChild(workflow)
71
72 # asd
73 asd = doc.createElement( " asd " )
74 header.appendChild(asd)
75
76 slim.appendChild(header)
77
78 # body
79 body = doc.createElement( " body " )
80
81 # loGrp
82 loGrp = doc.createElement( " loGrp " )
83 loGrp.setAttribute( " grpClass " , " textType " )
84 loGrp.setAttribute( " grpName " , " XTXT " )
85
86 input = open(strFile, ' r ' )
87 for line in input.readlines():
88 if (line.find( ' " ' ) != - 1 ):
89 parseLine(doc, loGrp, line)
90
91 body.appendChild(loGrp)
92 slim.appendChild(body)
93
94 output = open(strOutputFile, ' w ' )
95 slim.writexml(output)
96
97 def createItem(doc, loGrp, strtk, strmaxL, strText):
98 # lo
99 lo = doc.createElement( " lo " )
100 lo.setAttribute( " tK " , strtk)
101 lo.setAttribute( " maxL " , strmaxL)
102
103 # loC
104 loC = doc.createElement( " loC " )
105 loC.appendChild(doc.createTextNode(strText))
106 lo.appendChild(loC)
107 loGrp.appendChild(lo)
108
109 def parseLine(doc, loGrp, line):
110 keystart = line.find( ' " ' )
111 keyend = line.find( ' " ' , keystart + 1 )
112 key = line[keystart : keyend]
113
114 valuestart = line.find( ' = ' ) + 2
115 valueend = line.rfind( ' " ' )
116 value = line[valuestart : valueend] + " ; "
117
118 if (key.find( ' # ' ) != - 1 ):
119 length = line[line.find( ' # ' ) + 1 : keyend]
120 # key = line[keystart : line.find('#')-2]
121 else :
122 length = " 255 "
123 createItem(doc, loGrp, key, length, value)
124
125 if __name__ == " __main__ " :
126 createDocument( " BUSMB_SBO_iPhone_Setting_10 " , " 000 " , " C:\Settings.strings " , " C:\iphone_setting.xml " )
127 createDocument( " BUSMB_SBO_iPhone_Main_10 " , " 000 " , " C:\main.strings " , " C:\iphone_main.xml " )
128
2
3 def createDocument(strContentName, strDeveloper, strFile, strOutputFile):
4 doc = minidom.Document()
5
6 # Create slim
7 slim = doc.createElement( " slim " )
8 slim.setAttribute( " slimEd " , " 1.0 " )
9 slim.setAttribute( " xmlns " , " www.sap.com/slim " )
10
11 # Create header
12 header = doc.createElement( " header " )
13
14 # Create locale
15 locale = doc.createElement( " locale " )
16
17 # Create develLc
18 develLc = doc.createElement( " develLc " )
19 develLc.appendChild(doc.createTextNode( " en++ " ))
20
21 # Create contentLc
22 contentLc = doc.createElement( " contentLc " )
23 contentLc.appendChild(doc.createTextNode( " en++ " ))
24
25 locale.appendChild(develLc)
26 locale.appendChild(contentLc)
27
28 header.appendChild(locale)
29
30 # objType
31 objType = doc.createElement( " objType " )
32 objType.appendChild(doc.createTextNode( " line " ))
33 header.appendChild(objType)
34
35 # collection
36 collection = doc.createElement( " collection " )
37 collection.appendChild(doc.createTextNode( " BUSMB_SBO_iPhone_10 " ))
38 header.appendChild(collection)
39
40 # domain
41 domain = doc.createElement( " domain " )
42 domain.appendChild(doc.createTextNode( " FI " ))
43 header.appendChild(domain)
44
45 # contentName
46 contentName = doc.createElement( " contentName " )
47 contentName.appendChild(doc.createTextNode(strContentName))
48 header.appendChild(contentName)
49
50 # defaults
51 defaults = doc.createElement( " defaults " )
52
53 # maxL
54 maxL = doc.createElement( " maxL " )
55 maxL.appendChild(doc.createTextNode( " 255 " ))
56 defaults.appendChild(maxL)
57 header.appendChild(defaults)
58
59 # workflow
60 workflow = doc.createElement( " workflow " )
61
62 # contacts
63 contacts = doc.createElement( " contacts " )
64
65 # developer
66 developer = doc.createElement( " developer " )
67 developer.appendChild(doc.createTextNode(strDeveloper))
68 contacts.appendChild(developer)
69 workflow.appendChild(contacts)
70 header.appendChild(workflow)
71
72 # asd
73 asd = doc.createElement( " asd " )
74 header.appendChild(asd)
75
76 slim.appendChild(header)
77
78 # body
79 body = doc.createElement( " body " )
80
81 # loGrp
82 loGrp = doc.createElement( " loGrp " )
83 loGrp.setAttribute( " grpClass " , " textType " )
84 loGrp.setAttribute( " grpName " , " XTXT " )
85
86 input = open(strFile, ' r ' )
87 for line in input.readlines():
88 if (line.find( ' " ' ) != - 1 ):
89 parseLine(doc, loGrp, line)
90
91 body.appendChild(loGrp)
92 slim.appendChild(body)
93
94 output = open(strOutputFile, ' w ' )
95 slim.writexml(output)
96
97 def createItem(doc, loGrp, strtk, strmaxL, strText):
98 # lo
99 lo = doc.createElement( " lo " )
100 lo.setAttribute( " tK " , strtk)
101 lo.setAttribute( " maxL " , strmaxL)
102
103 # loC
104 loC = doc.createElement( " loC " )
105 loC.appendChild(doc.createTextNode(strText))
106 lo.appendChild(loC)
107 loGrp.appendChild(lo)
108
109 def parseLine(doc, loGrp, line):
110 keystart = line.find( ' " ' )
111 keyend = line.find( ' " ' , keystart + 1 )
112 key = line[keystart : keyend]
113
114 valuestart = line.find( ' = ' ) + 2
115 valueend = line.rfind( ' " ' )
116 value = line[valuestart : valueend] + " ; "
117
118 if (key.find( ' # ' ) != - 1 ):
119 length = line[line.find( ' # ' ) + 1 : keyend]
120 # key = line[keystart : line.find('#')-2]
121 else :
122 length = " 255 "
123 createItem(doc, loGrp, key, length, value)
124
125 if __name__ == " __main__ " :
126 createDocument( " BUSMB_SBO_iPhone_Setting_10 " , " 000 " , " C:\Settings.strings " , " C:\iphone_setting.xml " )
127 createDocument( " BUSMB_SBO_iPhone_Main_10 " , " 000 " , " C:\main.strings " , " C:\iphone_main.xml " )
128