假設你的HTML也是良好的XML(這樣該&
人物了逃脫的未解析文本&
,那麼如果你正在使用XSLT 1.0,您將需要一些字符串來做到這一點操縱。
首先從href
屬性提取查詢字符串。
<xsl:variable name="qs" select="concat('&', substring-after(@href, '?'), '&')" />
注意,我加入了一個&
到開始和字符串的結束麥e更容易地提取下一個參數。
要提取ll
參數的值,那麼你這樣做(額外的&符號確保它只找到ll=1,2
而不是all=1,2
。
<xsl:variable name="ll" select="substring-before(substring-after($qs, '&ll='), '&')" />
這應返回「-23.590877,-46.689397」,得到緯度(或經度)然後你可以只是這樣做
<latitude><xsl:value-of select="substring-before($ll, ',')" /></latitude>
試試這個模板
<xsl:template match="a">
<xsl:variable name="qs" select="concat('&', substring-after(@href, '?'), '&')" />
<xsl:variable name="ll" select="substring-before(substring-after($qs, '&ll='), '&')" />
<position>
<latitude><xsl:value-of select="substring-before($ll, ',')" /></latitude>
<longitude><xsl:value-of select="substring-after($ll, ',')" /></longitude>
</position>
</xsl:template>
請注意,如果你使用XSLT 2.0,您可以通過使用tokenize
功能
<xsl:variable name="ll" select="tokenize(substring-after(@href, '?'), '&')[starts-with(., 'll=')]" />
一個例子不建立規則有點事情簡單化。 –
此外,輸入不是XML(包含未轉義的&符號)。 –
是的,[你應該逃避你的URI](https://unspecified.wordpress.com/2011/06/02/you-should-xml-escape-your-uris/)。如果您的XSLT處理器不畏懼它,您可以查看XSLT字符串函數。 – usr2564301