如何在KML中添加&符号?

时间:2017-08-07 21:53:50

标签: kml

在KML中加入&符号的正确格式是什么?我在名称标签中使用它们。如果我加入常规'&'那么它是无效的。

我需要哪些其他字符才能正确编码?

我正在使用这种格式:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">

我正在寻找一个PHP解决方案。我正在用PHP创建KML。

3 个答案:

答案 0 :(得分:4)

KML是一个XML文件,因此只需遵循XML规则即可对特殊字符进行编码。 在XML中,您可以编码“&amp;”和其他带有“predefined entities”的特殊字符,代表相关的特殊字符或使用CDATA部分。

<强> 1。预定义的实体

XML规范定义了五个代表特殊字符的“预定义实体”,并要求所有XML处理器都遵守它们。使用这些特殊的预定义实体名称,这些名称在评估元素内容时将替换为它所代表的实际字符。

name  | characters
----- | ------
<     | &lt;
>     | &gt;
&     | &amp;
"     | &quot;
'     | &apos;

示例:

<description>
  &lt;a href="http://server.com/link"&gt;A &amp; B&lt;/a&gt;
</description>

<强> 2。 CDATA

另一种在XML元素中转义标记的机制是CDATA。 CDATA部分是元素内容的一部分,标记为解析器仅解释为字符数据,而不是标记。

示例:

<description>
  <![CDATA[
    <a href="http://server.com/link">A & B</a>
  ]]>
</description>

答案 1 :(得分:1)

要在XML,HTML / XHTML等标记语言或KML等派生格式中转换特殊字符(如&符号),请使用HTML实体。

在您的情况下&成为&amp;

您可以在此页面上找到有关实体的更多信息:Character_references

答案 2 :(得分:0)

我使用带有ENT_XML1标志的PHP函数:

agg(['count'])