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