如何将XML转换为KML?

4
我对此有些陌生,但我需要将以下XML转换为KML格式,以便向Google地图提供数据。是否可以帮忙?
<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>
2个回答

5
您可以使用XSL模板翻译器。以下是一个示例:

您可以应用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格式来自文档示例)

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


0
        XmlDocument xmlDoc = new XmlDocument();
        XmlDeclaration xmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);

        // Create the root element
        XmlElement rootNode = xmlDoc.CreateElement("kml");
        rootNode.SetAttribute("xmlns", @"http://earth.google.com/kml/2.1");
        xmlDoc.InsertBefore(xmlDeclaration, xmlDoc.DocumentElement);
        xmlDoc.AppendChild(rootNode);

        // Add the Document
        XmlElement documentNode = CreateElement(xmlDoc, "Document", "Test KML File");
        rootNode.AppendChild(documentNode);
        xmlDoc.Save(outputFilePath + FileName + ".kml");


    public XmlElement CreateElement(XmlDocument xmlDoc, string elementType, string name)
    {
        XmlElement documentNode = xmlDoc.CreateElement(elementType);
        XmlElement documentNameNode = xmlDoc.CreateElement("name");
        XmlText nameText = xmlDoc.CreateTextNode(name);
        documentNode.AppendChild(documentNameNode);
        documentNameNode.AppendChild(nameText);
        return documentNode;
    }

您的回答可以通过添加更多支持信息来改进。请[编辑]以添加进一步详细信息,例如引用或文档,以便其他人可以确认您的答案是否正确。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接