我有一个坐标的XML节点,它包含完全地理定位的纬度/经度组合。但是,在新系统上,它必须作为单个节点发送。 XMl在发送之前用XSLT进行了变形,所以我想知道如何将它有效地分离到组件中。
XML节点
<coordinates>-3.166610, 51.461231</coordinates>
我需要转变为:
<latitude>-3.166610</latitude>
<longitude>51.461231</longitude>
感谢。哦,应该提一下它的XSLT 1.0
答案 0 :(得分:2)
正如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>