3
<?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 标签相关...这个标签有什么问题?我与它对应的描述标签相匹配。

4

1 回答 1

8

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

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

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

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

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

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

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

可以在此处找到调试 KML 文件的更多提示。

于 2012-11-29T16:54:41.287 回答