Right, that sounds like the array idea, where you bring the file data into memory for processing. Instead of arrays though, you would use a single string variable and use TokenAt to navigate it. I may end up having to do something like this if there's no way to remember where I left off in the XML file and avoid re-querying with XPath.
So then, what if your conversation looks like this?
<?xml version="1.0" encoding="UTF-8"?>
<root>
<TalkToImoen>
<normal>
<blocks>
<element>
<portrait>Imoen</portrait>
<text>
<element>I'm so glad to be out of that place..</element>
</text>
</element>
</blocks>
</normal>
</TalkToImoen>
<TalkToMinsc>
<nextDialogue>EscapeFromTheCity_Minsc_001</nextDialogue>
<normal>
<blocks>
<element>
<portrait>Minsc</portrait>
<text>
<element>I'm Minsc.</element>
<element>I love my hamster, Boo!</element>
</text>
</element>
?? <element>
<portrait>MainCharacter</portrait>
<text>
<element>Minsc, you and Boo are in trouble.</element>
<element>You have to get out of here!</element>
</text>
</element>
?? <element>
<portrait>ShadowyFigure</portrait>
<text>
<element>I've found you...</element>
</text>
</element>
</blocks>
</normal>
</TalkToMinsc>
</root>