我有一个坐标的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-before
和substring-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>