调试 KML 文件

标签 debugging kml google-earth

<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document> <Placemark> <Name>Test Name</Name> <Description><b>Project Information</b><br><ul><li>Project Name: Test Name</li><li>Project Number: Test Number</li><li>Project Location:  Test Location</li><li>System: Test System</li></ul><br><b>Project Team</b><br><br><ul><li>Regional Manager: Mem 1</li><li>Project Manager: Mem 2</li></ul><br>YouTube Video URL: <a href="http://youtu.be/U9EYP9GIe2k"><br>Picassa Album URL: <a href="www.picassa.com"><br></Description> <Point> <Coordinates>30,-125</Coordinates>,0 </Point> </Placemark> </Document> </kml>

这就是我的自定义 Excel 宏正在生成的内容(我是编程新手,所以如果你发现了一些大事,请放轻松)。当我尝试使用 Google 地球打开 KML 文件时,我收到以下消息:打开文件“文件路径”失败:第 2 行第 454 列的解析错误:标签不匹配。这与/Description 标签相关...这个标签有什么问题?我匹配了它对应的Description标签。

最佳答案

您可以应用一些技术来调试和修复损坏的 KML 文件。

基本上,验证 KML 文件的最快方法是首先使用您的网络浏览器。 KML 是一个 XML 文件,因此首先您可以测试它是否是格式良好的 XML 文件,这是它成为有效 KML 文件的先决条件。只需重命名 KML 文件,添加 .xml 文件扩展名,然后将文件拖到 Web 浏览器(Firefox、Chrome 等)上即可对其进行验证。 See detailed example here .

一旦发现并修复了这些错误,您就可以尝试使用 KML 验证器来检查文件是否是符合 OGC KML 规范和相关 XML 架构的有效 KML,例如 独立命令行 XmlValidator工具。

在您的示例中,如果您通过一个简单的 XML SAX 解析器运行它,它会显示:元素类型“br”必须由第 455 列的匹配结束标记“</br>”终止

错误是 <description>元素具有 HTML 标记,但没有使用 CDATA block 进行转义(CDATA 是 XML 标准的一部分)。要解决此问题,您需要像这样重新格式化您的 KML:

  <description>
      <![CDATA[
          <b>Project Information</b>
          ...
          <br>
      ]]>
  </description>

此外,元素名称错误(描述与描述)。 KML 区分大小写。

更多调试 KML 文件的技巧可以找到 here .

关于调试 KML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13630399/

相关文章:

apache-flex - 调试FLEX/AS3内存泄漏

python - 如何使用 Google Map Feed API 通过 Python 获取我的 Google map 列表?

php - 下载 KML 文件而不是在浏览器中查看

kml - Google 地球不会打开 KML 中有空格的链接

Java 俄罗斯方 block 旋转错误

debugging - IntelliJ Idea(调试)条件断点依赖于其他断点

debugging - 如何调试 Outlook Web 加载项?

gis - 使用谷歌地图加载本地 .kml 文件?

ios - 地标 kml 信息未显示在 iOS 版 Google 地球中