This may be different than what you're looking for, but we currently use DataLinq to manage headshots for our election graphics build. We built a dummy field for the candidate called "Pic_ID," to which we'll put in a six-character ID for that candidate. Within XPression, we then have a blank placeholder for their image, as well as a dummy text field (which we don't render by turning off the eyeball). The text field picks up the Pic_ID from DataLinq, then a script takes over the rest:
dim PicTag as xpTextObject
dim Pic as xpBaseObject
dim PicMat as xpMaterial
dim PicShad as xpBaseShader
dim FilePath as String
dim i as Integer
For i = 1 to 2
Self.GetObjectByName("Pic Tag " & i, PicTag)
FilePath = Engine.ProjectPath & "Election Headshots" & PicTag.Text & ".png"
Self.GetObjectByName("Pic " & i, Pic)
Pic.GetMaterial(0, PicMat)
PicMat.GetShader(0, PicShad)
PicShad.SetFileName(FilePath)
Next i
The script takes the text out of Pic_ID, creates a file path with that at the end, and assigns it as a shader to the place holder material.
You may be able to break this off and use multiple images (is it a constant number?) the same way, and just loop scene director for the roll between them all.
#XPression