XSLT 中的分割坐标

Split Coordinates in 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>