在XSLT中拆分坐标



我有一个坐标的XML节点,它包含完全地理定位的lat/long组合。然而,在新系统上,它必须作为单独的节点发送。XMl在发送之前已经用XSLT进行了转换,所以我想知道如何有效地将其分离为组件部分。

XML节点

<coordinates>-3.166610, 51.461231</coordinates>

我需要转换为:

<latitude>-3.166610</latitude>
<longitude>51.461231</longitude>

谢谢。哦,应该提一下它的XSLT 1.0

正如Ian所评论的,substring-beforesubstring-after可以为您处理此问题:

此XML:

<coordinates>-3.166610, 51.461231</coordinates>

给定此XSLT转换:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>
  <xsl:template match="coordinates">
    <xsl:copy>
      <latitude>
        <xsl:value-of select="normalize-space(substring-before(., ','))"/>
      </latitude>
      <longitude>
        <xsl:value-of select="normalize-space(substring-after(., ','))"/>
      </longitude>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

将生成所需的输出XML:

<?xml version="1.0" encoding="UTF-8"?>
<coordinates>
   <latitude>-3.166610</latitude>
   <longitude>51.461231</longitude>
</coordinates>

相关内容

  • 没有找到相关文章

最新更新