我正在查看芝加哥开放数据门户网站的公交车站列表,我看到他们已经双倍地逃过了他们的&符号,但并非全部.换句话说,他们有时将他们的&符号编码为& amp;和有时只是& amp;
我注意到的模式是它们在描述字段内双重转义&符号,它们是KML文档本身内部的完全成熟的HTML文档.
有没有人对此有任何见解?这是城市数据中的错误吗?它也无法在Google地球中正确呈现.
芝加哥开放数据门户的 KML 公交车站列表中的 XML 实体编码不正确。
以下 KML 片段显示Indiana & 14th Street在 Google 地球的描述气球中,而不是预期的“印第安纳州和第 14 街”。
例子:
<Placemark>
<name>Indiana & 14th Street</name>
<description>
<![CDATA[<html xmlns:fo="http://www.w3.org/1999/XSL/Format">
...
<td>PUBLIC_NAME</td>
<td>Indiana &amp; 14th Street</td>
....
</html>
]]>
</description>
Run Code Online (Sandbox Code Playgroud)
使用 CDATA 块对文本&amp;进行解码,按原样显示。&要在描述中显示“&”,则CDATA 块内容中需要一个&或(不是两者)。&名称字段中的编码是正确的,因为它没有 CDATA 标记。
事实上,除了将文件压缩为 KMZ 之外, KML 还应该使用单个BalloonStyle来捕获每个地标中的冗长 HTML 文本,并使用ExtendedData获取地标中的特定值(例如城市、状态、公共名称等)。这将大大减少 15MB 文件的大小。
这是使用 BalloonStyles 和 ExtendedData 的教程。
https://developers.google.com/kml/documentation/extendeddata
以下是 KML 中特殊实体编码的描述。
http://kml4earth.appspot.com/kmlErrata.html#encoding
| 归档时间: |
|
| 查看次数: |
662 次 |
| 最近记录: |