abwechelndes aufrufen von 2 for-each Schleifen


Yadefux

Grünschnabel
#1
hallo zusammen, ich bin neu hier, absoluter xsl Anfänger und habe natürlich direkt eine Frage!
mein bisheriger xsl Code liefer mir:

453077 |SD 2.295 |Hz 169.1682 |V1 107.3258 |th 1.500
000217 |SD 10.934 |Hz 147.3772 |V1 106.2407 |th 1.500
453077 |X 5665970.263 |Y 32429334.711 |Z -0.264 |Standard 0.0030
000217 |X 5665964.909 |Y 32429341.654 |Z -1.070 |Standard 0.0030

was ich aber benötige, ist eine andere Reihenfolge:

453077 |SD 2.295 |Hz 169.1682 |V1 107.3258 |th 1.500
453077 |X 5665970.263 |Y 32429334.711 |Z -0.264 |Standard 0.0030
000217 |SD 10.934 |Hz 147.3772 |V1 106.2407 |th 1.500
000217 |X 5665964.909 |Y 32429341.654 |Z -1.070 |Standard 0.0030

hier mein xsl Code:

<xsl:for-each select="/">
<xsl:for-each select="l:LandXML">
<xsl:for-each select="l:Survey">
<xsl:for-each select="l:ObservationGroup">
<xsl:for-each select="l:RawObservation[@purpose='resection']">
<xsl:for-each select="l:TargetPoint">
<xsl:value-of select="concat(substring(concat(' ',@Name),string-length(@Name)+1,16),' ')"/>
</xsl:for-each>
<xsl:value-of select="concat(' |SD',substring(concat(' ',format-number(@slopeDistance,'0.000')),string-length(format-number(@slopeDistance,'0.000'))+1,13))"/>
<xsl:value-of select="concat(' |Hz',substring(concat(' ',format-number(@horizAngle,'###.0000')),string-length(format-number(@horizAngle,'###.0000'))+1,13))"/>
<xsl:value-of select="concat(' |V1',substring(concat(' ',format-number(@zenithAngle,'###.0000')),string-length(format-number(@zenithAngle,'###.0000'))+1,11))"/>
<xsl:value-of select="concat(' |th',substring(concat(' ',format-number(@targetHeight,'0.000')),string-length(format-number(@targetHeight,'0.000'))+1,13))"/>
<xsl:text>&#10;</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>

<xsl:for-each select="/">
<xsl:for-each select="l:LandXML">
<xsl:for-each select="h:HexagonLandXML">
<xsl:for-each select="h:point[@class='measured'][@applicationNumber='1']">
<xsl:sort select="position()" order="descending" data-type="number"/>
<xsl:for-each select="@uniqueID">
<xsl:if test="contains(.,'@')">
<xsl:value-of select="concat(substring(concat(' ',substring-before(.,'@')),string-length(substring-before(.,'@'))+1,16),' ')"/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="h:Coordinates">
<xsl:for-each select="h:Local">
<xsl:for-each select="h:Grid">
<xsl:for-each select="@n">
<xsl:value-of select="concat(' |X',substring(concat(' ',format-number(.,'########.000')),string-length(format-number(.,'########.000'))+1,14))"/>
</xsl:for-each>
<xsl:for-each select="@e">
<xsl:value-of select="concat(' |Y',substring(concat(' ',format-number(.,'########.000')),string-length(format-number(.,'########.000'))+1,14))"/>
</xsl:for-each>
<xsl:for-each select="@hghthO">
<xsl:value-of select="concat(' |Z',substring(concat(' ',format-number(.,'0.000')),string-length(format-number(.,'0.000'))+1,12))"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
<xsl:for-each select="h:pointQuality">
<xsl:value-of select="concat(' |Standard',substring(concat(' ',format-number(@CQPos,'0.0000')),string-length(format-number(@CQPos,'0.0000'))+1,8))"/>
</xsl:for-each>
<xsl:text>&#10;</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>