Использование XSLT2 с последним Saxon HE.
Я пытаюсь передать несколько параметров координат из скрипта в XSL, чтобы отфильтровать результаты на основе граничного поля местоположения
Скрипт:
java -jar saxon9he.jar -s:litter_bins.xml -o:"bins.xml" -xsl:"Split xml coords.xsl" Coord_2=51.3725 Coord_4=51.3751 Coord_1=-2.3615 Coord_3=-2.3572
XSL:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="Coord_2" select="Coord_2"/>
<xsl:param name="Coord_4" select="Coord_4"/>
<xsl:param name="Coord_1" select="Coord_1"/>
<xsl:param name="Coord_3" select="Coord_3"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node[@lat[ . < $Coord_2 or . > $Coord_4 ] or @lon[ . < $Coord_1 or . > $Coord_3]]"/>
</xsl:stylesheet>
Вышеприведенное возвращает:
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="JOSM"/>
Однако, если я жестко закодирую координаты в match
xpath, он возвращаетожидаемые результаты.
Xpath:
<xsl:template match="node[@lat[ . < 51.3725 or . > 51.3751 ] or @lon[ . < -2.3615 or . > -2.3572]]"/>
Результаты:
<?xml version="1.0" encoding="UTF-8"?>
<osm version="0.6" generator="JOSM">
<node id="-102973" visible="true" lat="51.37283499216" lon="-2.359890029">
<tag k="date_creat" v="17/07/2014 07:59:04 AM UTC"/>
<tag k="form_recor" v="888"/>
</node>
<snip...>
</osm>
Что я неправильно понимаю?