3
我正在嘗試編寫一個處理都柏林核心(XML)編目記錄併爲每本書創建芝加哥,APA和MLA版本的引文的XSLT樣式表。除了APA作者之外,我已經將所有的工作都做好了。 APA對作者的風格要求作者的姓氏(完成),逗號,第一首字母(完成),任何其他首字母(我的卡住地點問題)。使用XSLT在字符串/子串中的每個實例後選擇
我現在所擁有的(下面,品嚐DC元素):
<xsl:value-of select="substring-before(dc:creator[1],',')" /><xsl:text>, </xsl:text><xsl:value-of select="substring(substring-after(dc:creator[1],' '),1,1)" /><xsl:for-each select="dc:creator[position()!=1]"><xsl:choose><xsl:when test="position()=last()"><xsl:text>., & </xsl:text></xsl:when><xsl:otherwise>., </xsl:otherwise></xsl:choose><xsl:value-of select="substring-before(.,',')" /><xsl:text>, </xsl:text><xsl:value-of select="substring(substring-after(.,' '),1,1)" /><xsl:if test="position()=last()">.</xsl:if></xsl:for-each>
對於以下格式的情況下(出什麼目錄使用):
<dc:creator>Friend, Natasha</dc:creator>
這工作得很好,返回:Friend, N.
但
<dc:creator>Tolkien, J. R. R.</dc:creator>
返回:Tolkien, J.
在很多也沒關係的情況下,反而會出現情況下,它確實需要返回作者的中間名首字母(S),像J.R.R. Tolkien
或J.K. Rowling
。
因此,我需要能夠返回每個空間後發生的字母,而不僅僅是空間的第一個實例。
任何想法?
我一直使用1.0自我更熟悉它,但我會檢查一下,謝謝。除了每個之後,回報看起來都很棒,但我會把它拿出來。 – Talia
@Talia:我認爲'','是被要求作爲新的分隔符。如果不是什麼應該是分隔符?我還將提供一個XSLT 1.0解決方案。 –
@Talia,用新增的XSLT 1.0解決方案更新了答案。 –