代码之家  ›  专栏  ›  技术社区  ›  TruMan1

如何将此XML转换为KML?

  •  4
  • TruMan1  · 技术社区  · 15 年前

    我对这个有点陌生,但我需要将下面的XML转换为KML格式,以便将其输入谷歌地图。有人能帮忙吗?

    <messageList>
    <totalCount>1</totalCount>
    −
    <message>
    <esn>0-7396996</esn>
    <esnName>JOHN</esnName>
    <messageType>TEST</messageType>
    <messageDetail> ALL IS WELL AT CURRENT LOCATION.</messageDetail>
    <timestamp>2010-05-24T00:39:12.000Z</timestamp>
    <timeInGMTSecond>1274661552</timeInGMTSecond>
    <latitude>25.19483</latitude>
    <longitude>65.7162</longitude>
    </message>
    </messageList>
    
    1 回复  |  直到 15 年前
        1
  •  5
  •   amphetamachine    15 年前

    您可以应用XSL模板转换器。沿着这些线的东西:

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    
    <xsl:template match="/">
        <kml xmlns="http://www.opengis.net/kml/2.2">
            <Document>
                <xsl:apply-templates select="messageList" />
            </Document>
        </kml>
    </xsl:template>
    
    <xsl:template match="messageList">
        <name>My Generated KML</name>
        <xsl:apply-templates select="message" />
    </xsl:template>
    
    <xsl:template match="message">
        <Placemark>
            <name><xsl:value-of select="esnName" /></name>
            <Point>
                <coordinates>
                    <xsl:value-of select="latitude" />,<xsl:value-of select="longitude" />
                </coordinates>
            </Point>
        </Placemark>
    </xsl:template>
    
    </xsl:stylesheet>
    

    (基本的KML格式来自 a documentation example )

    KML是一种广泛的格式,您可以添加比我这里的两个元素更多的信息。