Mercurial > hg > mpdl-group
comparison software/eXist/webapp/mpdl/presentation/insertExternalElements.xsl @ 15:e99964f390e4
diverse Fehlerbehebungen
author | Josef Willenborg <jwillenborg@mpiwg-berlin.mpg.de> |
---|---|
date | Mon, 29 Aug 2011 17:40:19 +0200 |
parents | 469d927b9ca7 |
children | 7e883ce72fec |
comparison
equal
deleted
inserted
replaced
14:5df60f24e997 | 15:e99964f390e4 |
---|---|
82 | 82 |
83 <xsl:template match="element()"> | 83 <xsl:template match="element()"> |
84 <xsl:variable name="elemXmlNodeIdTmp" select="saxon:path(.)"/> | 84 <xsl:variable name="elemXmlNodeIdTmp" select="saxon:path(.)"/> |
85 <xsl:variable name="elemXmlNodeId" select="concat('/', substring-after(substring-after(substring-after($elemXmlNodeIdTmp, '/'), '/'), '/'))"/> | 85 <xsl:variable name="elemXmlNodeId" select="concat('/', substring-after(substring-after(substring-after($elemXmlNodeIdTmp, '/'), '/'), '/'))"/> |
86 <xsl:variable name="extElemXmlNodeIds" select="$externalElements//@xmlNodeId"/> | 86 <xsl:variable name="extElemXmlNodeIds" select="$externalElements//@xmlNodeId"/> |
87 <!-- Bug: if there are more than one external node at the same position, index-of delivers an error: ToDo: handle more than one external nodes at one position --> | |
87 <xsl:variable name="extElemIndex" select="index-of($extElemXmlNodeIds, $elemXmlNodeId)"/> | 88 <xsl:variable name="extElemIndex" select="index-of($extElemXmlNodeIds, $elemXmlNodeId)"/> |
88 <xsl:variable name="extElem" select="$externalElements/*[$extElemIndex]"/> | 89 <xsl:variable name="extElem" select="$externalElements/*[$extElemIndex]"/> |
89 <xsl:variable name="extElemContent" select="$extElem/content/*[1]"/> | 90 <xsl:variable name="extElemContent" select="$extElem/*[1]"/> |
90 <xsl:variable name="extElemXPointer" select="$extElem/@xpointer"/> | 91 <xsl:variable name="extElemXPointer" select="$extElem/@xpointer"/> |
91 <xsl:variable name="extElemXPointerPoint" select="substring-before(substring-after($extElemXPointer, '/point('), ')')"/> | 92 <xsl:variable name="extElemXPointerPoint" select="substring-before(substring-after($extElemXPointer, '/point('), ')')"/> |
92 <xsl:variable name="extElemXPointerPointInt"> | 93 <xsl:variable name="extElemXPointerPointInt"> |
93 <xsl:choose> | 94 <xsl:choose> |
94 <xsl:when test="$extElemXPointerPoint != '.0' and $extElemXPointerPoint != '.1' and $extElemXPointerPoint != ''"> | 95 <xsl:when test="$extElemXPointerPoint != '.0' and $extElemXPointerPoint != '.1' and $extElemXPointerPoint != ''"> |
138 </xsl:variable> | 139 </xsl:variable> |
139 <xsl:if test="$extElemXPointerPoint = '.0'"> | 140 <xsl:if test="$extElemXPointerPoint = '.0'"> |
140 <xsl:sequence select="$extElemContent"/> | 141 <xsl:sequence select="$extElemContent"/> |
141 </xsl:if> | 142 </xsl:if> |
142 <xsl:if test="$extElemXPointerPointInt >= 0"> | 143 <xsl:if test="$extElemXPointerPointInt >= 0"> |
143 <xsl:variable name="extElemContent" select="$extElem/content/*[1]"/> | 144 <xsl:variable name="extElemContent" select="$extElem/*[1]"/> |
144 <xsl:variable name="extElemContentSerialized" select="saxon:serialize($extElemContent, 'myXml')"/> | 145 <xsl:variable name="extElemContentSerialized" select="saxon:serialize($extElemContent, 'myXml')"/> |
145 <xsl:variable name="elemSerialized" select="saxon:serialize(., 'myXml')"/> | 146 <xsl:variable name="elemSerialized" select="saxon:serialize(., 'myXml')"/> |
146 <xsl:variable name="insertedElemSerialized" select="mpdlxmlutil:insertAtCharPos(mpdlxmlutil:new(), $elemSerialized, string($extElemXPointerPointInt), $extElemContentSerialized)"/> | 147 <xsl:variable name="insertedElemSerialized" select="mpdlxmlutil:insertAtCharPos(mpdlxmlutil:new(), $elemSerialized, string($extElemXPointerPointInt), $extElemContentSerialized)"/> |
147 <xsl:variable name="insertedElemDeSerializedTmp" select="saxon:parse($insertedElemSerialized)"/> | 148 <xsl:variable name="insertedElemDeSerializedTmp" select="saxon:parse($insertedElemSerialized)"/> |
148 <xsl:variable name="insertedElemDeSerialized"> | 149 <xsl:variable name="insertedElemDeSerialized"> |