Révision 3216

tmp/org.txm.groovy.core/src/groovy/org/txm/macro/table/Table2XMLMacro.groovy (revision 3216)
50 50

  
51 51
@Field @Option(name="structureContentColumnList", usage="structure textual content columns", widget="String", required=false, def="Titre propre,Résumé,Descripteurs (Aff. Lig.),Générique (Aff. Lig.) ,Séquences")
52 52
		def structureContentColumnList;
53
		
54
@Field @Option(name="structureTitleColumnList", usage="structure textual content columns", widget="String", required=false, def="Titre propre,Date de diffusion")
55
		def structureTitleColumnList;
53 56

  
54 57
@Field @Option(name="typesSeparator", usage="Columns types", widget="Separator", required=false, def="Columns types")
55 58
		def typesSeparator
......
78 81
structureMetadataColumnList.remove("")
79 82
structureContentColumnList = structureContentColumnList.split(",") as List
80 83
structureContentColumnList.remove("")
84
structureTitleColumnList = structureTitleColumnList.split(",") as List
85
structureTitleColumnList.remove("")
86
structureTitleColumnList
81 87
dateColumnTypeList = dateColumnTypeList.split(",") as List
82 88
dateColumnTypeList.remove("")
83 89
prefixesColumnTypeList = prefixesColumnTypeList.split(",") as List
......
99 105
println "textIDColumn, textJoinColumn=$textIDColumn, $textJoinColumn"
100 106
println "textMetadataColumnList columns: $textMetadataColumnList"
101 107
println "textContentColumnList columns: $textContentColumnList"
108
println "structureTitleColumnList columns: $structureTitleColumnList"
102 109
println "structureMetadataColumnList columns: $structureMetadataColumnList"
103 110
println "structureContentColumnList columns: $structureContentColumnList"
104 111

  
112

  
105 113
println "text selector="+textSelector
106 114
println "structure selector="+structureSelector
107 115
println "structureTag="+structureTag
......
125 133
def ok = true
126 134
def hash = ["selection":[textIDColumn, textJoinColumn], "textMetadataColumnList":textMetadataColumnList,
127 135
	"textContentColumnList":textContentColumnList, "structureMetadataColumnList":structureMetadataColumnList,
128
	"structureContentColumnList":structureContentColumnList]
136
	"structureContentColumnList":structureContentColumnList, "structureTitleColumnList":structureTitleColumnList]
129 137
for (def key : hash.keySet()) {
130 138
	for (def m : hash[key]) {
131 139
		
......
197 205
}
198 206
outputDirectory.mkdir()
199 207

  
208
def metadata = new File(outputDirectory, "metadata.csv")
209
metadata.delete()
210
metadata <<  "id	text-order\n"
200 211
ConsoleProgressBar cpb = new ConsoleProgressBar(texts.size())
201 212
def nText = 0
202 213
for (def id : texts.keySet()) {
......
231 242
		
232 243
		textOrderWritten = false
233 244
		if (textOrderColumn != null && textOrderColumn.length() > 0 && textMetadataColumnList.contains(textOrderColumn)) {
234
			writer.writeAttribute("text-order", text.get(textOrderColumn))
235
			textOrderWritten = true
245
			textOrderWritten = text.get(textOrderColumn)
236 246
		}
237 247
		
238 248
		for (String att : textMetadataColumnList) {
239 249
			if (att in dateColumnTypeList) {
240 250
				String tri = writeMetadataDate(text, att, writer)
241 251
				if (!textOrderWritten) {
242
					writer.writeAttribute("text-order", tri)
243
					textOrderWritten = true;
252
					textOrderWritten = tri;
244 253
				}
245 254
			} else {
246 255
				writer.writeAttribute(AsciiUtils.buildAttributeId(att), text.get(att)) // struct
......
248 257
		}
249 258
		
250 259
		if (!textOrderWritten) {
251
			writer.writeAttribute("text-order", String.sprintf("%08d", nText))
252
			textOrderWritten = true;
260
			textOrderWritten = String.sprintf("%08d", nText);
253 261
		}
254 262
		
263
		metadata << "$id	$textOrderWritten\n"
264
		
255 265
		writer.writeCharacters("\n") // simple XML formating
256
		
257
		writer.writeStartElement("metadata")
258
		writer.writeStartElement("list")
259
		writer.writeAttribute("type", "unordered")
260
		writer.writeCharacters("\n")
261
		textMetadataColumnList.each { att ->
262
			writer.writeStartElement("item")
263
			writer.writeCharacters(att+" : "+text.get(att).replaceAll("\n", ";"))
264
			writer.writeEndElement() // item
265
			writer.writeCharacters("\n")
266
		}
267
		writer.writeEndElement() // list
268
		writer.writeEndElement() // metadata
269
		writer.writeCharacters("\n")
270
		
266
			
271 267
		for (String att : textContentColumnList) {
272 268
			
273 269
			if (att in prefixesColumnTypeList) {
......
289 285
			writer.writeEmptyElement("pb") // <pb/>
290 286
			writer.writeAttribute("n", ""+pb_n++)
291 287
			writer.writeAttribute("type", "record")
288
			writer.writeCharacters("\n")
292 289
			
293 290
			writer.writeStartElement(structureTag)
294 291
			
......
301 298
			}
302 299
			writer.writeCharacters("\n")
303 300
			
301
			for (String att : structureTitleColumnList) {
302
				writer.writeStartElement("head")
303
				writer.writeCharacters(record.get(att).trim())
304
				writer.writeEndElement() // head
305
				writer.writeCharacters("\n")
306
			}
307
			
304 308
			writer.writeStartElement("metadata")
305 309
			writer.writeStartElement("list")
306 310
			writer.writeAttribute("type", "unordered")
......
350 354
	writer.writeCharacters(att)
351 355
	writer.writeEndElement() // hi
352 356
	writer.writeEndElement() // head
357
	writer.writeCharacters("\n")
353 358
	
354 359
	def value = record.get(att).replaceAll(" ++", " ")
355 360
	if (value.length() <= 1) return
......
389 394
	writer.writeCharacters(att)
390 395
	writer.writeEndElement() // hi
391 396
	writer.writeEndElement() // head
397
	writer.writeCharacters("\n")
392 398
	
393 399
	def value = record.get(att).replaceAll(" ++", " ")
394 400
	if (value.length() == 0) return
......
412 418
	writer.writeCharacters(att)
413 419
	writer.writeEndElement() // hi
414 420
	writer.writeEndElement() // head
421
	writer.writeCharacters("\n")
415 422
	
416 423
	def value = record.get(att).replaceAll(" ++", " ")
417 424
	if (value.length() <= 1) return

Formats disponibles : Unified diff