Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I improve performance when adding InDesign XMLElements via AppleScript?

I have an AppleScript program which creates XML tags and elements within an Adobe InDesign document. The data is in tables, and tagging each cell takes .5 seconds. The entire script takes several hours to complete.

I can post the inner loop code, but I'm not sure if SO is supposed to be generic or specific. I'll let the mob decide.

[edit] The code builds a list (prior to this loop) which contains one item per row in the table. There is also a list containing one string for each column in the table. For each cell, the program creates an XML element and an XML tag by concatenating the items in the [row]/[column] positions of the two lists. It also associates the text in that cell to the newly-created element.

I'm completely new to AppleScript so some of this code is crudely modified from Adobe's samples. If the code is atrocious I won't be offended.

Here's the code:

repeat with columnNumber from COL_START to COL_END

    select text of cell ((columnNumber as string) & ":" & (rowNumber as string)) of ThisTable

    tell activeDocument

        set thisXmlTag to make XML tag with properties {name:item rowNumber of symbolList & "_" & item columnNumber of my histLabelList}

        tell rootXmlElement

            set thisXmlElement to make XML element with properties {markup tag:thisXmlTag}

        end tell

        set contents of thisXmlElement to (selection as string)

    end tell

end repeat

EDIT: I've rephrased the question to better reflect the correct answer.

like image 320
JPLemme Avatar asked Aug 14 '08 19:08

JPLemme


1 Answers

The problem is almost certainly the select. Is there anyway you could extract all the text at once then iterate over internal variables?

like image 147
Mike Heinz Avatar answered Oct 20 '22 16:10

Mike Heinz