Starting with
<r>Mateus 3.1-12; Lucas 3.1-20; </r>
I want
<parallelPassage>
<canonRef book="MAT" chapter="3" verse="1" verseEnd="12"/>
<canonRef book="LUK" chapter="3" verse="1"
verseEnd="20"/> </parallelPassage>
I have just switched to 2.0 as it seemed the regular
expressions would
help me here.
Yes, this kind of "up-conversion" is an excellent use case for
<xsl:analyze-string>
My thinking is to look in <r> and replace "Mateus" with
"<book>MAT</book>"
and "Lucas" with "<book>LUK</book>" ... and all the rest
and in a second pass change
<r><book>MAT</book> 3.1-12; <book>LUK</book> 3.1-20; </r>
<r>
<book>MAT</book>
<chapter>3</chapter>
<verse>1</verse>
<verseEnd>12</verseEnd>
<book>LUK</book>
<chapter>3</chapter>
<verse>1</verse>
<verseEnd>20</verseEnd
</r>
and then put in final form in third pass
<parallelPassage>
<canonRef book="MAT" chapter="3" verse="1" verseEnd="12"/>
<canonRef book="LUK" chapter="3" verse="1"
verseEnd="20"/> </parallelPassage>
Am I headed in the right direction? Or are there some really neat
shortcuts?
I would have thought it could be done more easily than that. Something
like (untested):
<xsl:analyze-string select="r" regex="[^;]+">
<xsl:matching-substring>
<canonRef>
<xsl:analyze-string select="."
regex="([^\s]+)\s([0-9]+)\.([0-9]+)\-([0-9]+)">
<xsl:matching-substring>
<xsl:attribute name="book" select="my:abbrev(regex-group(1))"/>
<xsl:attribute name="chapter" select="regex-group(2)"/>
<xsl:attribute name="verse" select="regex-group(3)"/>
<xsl:attribute name="verseEnd" select="regex-group(4)"/>
</
</
</canonRef>
</
</
[Correction, xsl:attribute doesn't take a select attribute - but watch
this space]
<xsl:function name="my:abbrev">
<xsl:param name="long-name"/>
<xsl:variable name="table">
<book long="Mateus" short="MAT"/>
<book long="Lucas" short="LUK"/>
...
</xsl:variable>
<xsl:sequence select="$table/book[(_at_)long=$long-name]/@short"/>
</xsl:function>
If I use replace will I need to have it nested 66 times to
account for all
books?
No, use a lookup table as above.
Jim Albright
704 843-0582
Wycliffe Bible Translators
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list