У вас, похоже, есть проблемы с выражениями XPath и узлами контекста.Вы начинаете с узла контекста AlignPI:
<xsl:for-each select="//lx:Alignment/lx:AlignPIs">
В этом контексте "."ссылается на элемент lx: AlignPIs, над которым в данный момент работает процессор XSLT.В следующем, внутреннем для каждого, вы должны написать следующее, чтобы выбрать все <AlignPi>
элементы в текущем контексте:
<xsl:for-each select="lx:AlignPI">
(<xsl:for-each select="./lx:AlignPI">
- эквивалентное утверждение)
Теперь ваш контекстный узел внутри второго блока for-each имеет вид lx: AlignPI.
Когда вы определяете свои переменные, вы пытаетесь ссылаться на атрибуты широты и долготы дочернего элемента PI.Попробуйте следующее выражение для широты и долготы:
<xsl:variable name="latitude" select="lx:PI/@latitude" />
<xsl:variable name="longitude" select="lx:PI/@longitude" />
Чтобы пояснить это немного: Как я уже говорил, во внутреннем <xsl:for-each ...>
ваш узел контекста теперь является lx: AlignPI.Атрибуты широты и долготы привязаны не к lx: AlignPI, а к дочернему элементу PI.Таким образом, в вашем операторе XPath вам нужно сначала перейти к элементу lx: PI, а затем получить оттуда доступ к атрибутам.