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

szx*_*zxk 5 kml

我正在查看芝加哥开放数据门户网站的公交车站列表,我看到他们已经双倍地逃过了他们的&符号,但并非全部.换句话说,他们有时将他们的&符号编码为& amp;和有时只是& amp;

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

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

Jas*_*nM1 2

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

以下 KML 片段显示Indiana & 14th Street在 Google 地球的描述气球中,而不是预期的“印第安纳州和第 14 街”。

例子:

<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>
Run Code Online (Sandbox Code Playgroud)

使用 CDATA 块对文本&#38;amp;进行解码,按原样显示。&amp;要在描述中显示“&”,则CDATA 块内容中需要一个&#38;或(不是两者)。&amp;名称字段中的编码是正确的,因为它没有 CDATA 标记。

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

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

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