同时使用&和amp;在KML中表示&符号?

时间:2014-07-13 06:05:37

标签: kml

我正在查看芝加哥开放数据门户网站list of bus stops,我发现他们已经双倍地逃过了他们的&符号,但并非全部。换句话说,他们有时会将他们的&号编码为& amp,有时只是&

我注意到的模式是它们在描述字段内双重转义&符号,这些字符是KML文档本身中的完全成熟的HTML文档

有没有人对此有任何见解?这是城市数据中的错误吗?它也无法在Google地球中正确呈现。

1 个答案:

答案 0 :(得分:2)

芝加哥开放数据门户网站KML中的公交车站列表中的XML实体编码不正确。

以下KML代码段在Google地球的说明气球中显示为Indiana & 14th Street,而不是“Indiana& 14th Street”。

示例:

<Placemark>
    <name>Indiana &#38; 14th Street</name>
    <description>
      <![CDATA[<html xmlns:fo="http://www.w3.org/1999/XSL/Format">
        ...
        <td>PUBLIC_NAME</td>
        <td>Indiana &#38;amp; 14th Street</td>
        ....
       </html>
      ]]>
    </description>

文本&#38;amp;被解码为&amp;,使用CDATA块按原样显示。显示“&amp;”在描述中,然后在CDATA块内容中需要&#38;&amp;(不是两者)。名称字段中的编码是正确的,因为它没有CDATA标记。<​​/ p>

事实上,KML应该使用单个BalloonStyle来捕获每个地标中带有ExtendedData的冗长HTML文本,以获取地标中的特定值(例如城市,状态,公共名称等)除了将文件压缩为KMZ之外 - 这将大大减少15MB文件的大小。

这是一个使用BalloonStyles和ExtendedData的教程 https://developers.google.com/kml/documentation/extendeddata

以下是KML中特殊实体编码的说明 http://kml4earth.appspot.com/kmlErrata.html#encoding