如何在 KML 中添加符号?
How to add an ampersand in KML?
在 KML 中包含符号的正确格式是什么?我在名称标签中使用它们。如果我包含一个常规的“&”,那么它是无效的。
我还需要正确编码哪些其他字符?
我正在使用这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
我正在寻找 PHP 解决方案。我正在 PHP.
中创建 KML
要在 XML、HTML/XHTML 等标记语言或 KML 等派生格式中转义符号等特殊字符,请使用 HTML 个实体。
在你的情况下 &
变为 &
您可以在此页面上找到有关实体的更多信息:Character_references
KML 是一个 XML 文件,因此只需遵循 XML 规则对特殊字符进行编码。
在 XML 中,您可以使用 "predefined entities" that represent the associated special characters or using a CDATA 部分对 "&" 和其他特殊字符进行编码。
1.预定义实体
XML 规范定义了五个 "predefined entities" 代表特殊字符,并要求所有 XML 处理器遵守它们。使用这些特殊的预定义实体名称,在评估元素内容时,这些名称将替换为它代表的实际字符。
name | characters
----- | ------
< | <
> | >
& | &
" | "
' | '
示例:
<description>
<a href="http://server.com/link">A & B</a>
</description>
2。 CDATA
另一种在 XML 元素内转义标记的机制是 CDATA。 CDATA 部分是元素内容的一部分,它被标记为供解析器解释为仅 character 数据,而不是标记。
示例:
<description>
<![CDATA[
<a href="http://server.com/link">A & B</a>
]]>
</description>
我使用了带有 ENT_XML1 标志的 PHP 函数:
htmlentities($sString, ENT_XML1))
在 KML 中包含符号的正确格式是什么?我在名称标签中使用它们。如果我包含一个常规的“&”,那么它是无效的。
我还需要正确编码哪些其他字符?
我正在使用这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
我正在寻找 PHP 解决方案。我正在 PHP.
中创建 KML要在 XML、HTML/XHTML 等标记语言或 KML 等派生格式中转义符号等特殊字符,请使用 HTML 个实体。
在你的情况下 &
变为 &
您可以在此页面上找到有关实体的更多信息:Character_references
KML 是一个 XML 文件,因此只需遵循 XML 规则对特殊字符进行编码。 在 XML 中,您可以使用 "predefined entities" that represent the associated special characters or using a CDATA 部分对 "&" 和其他特殊字符进行编码。
1.预定义实体
XML 规范定义了五个 "predefined entities" 代表特殊字符,并要求所有 XML 处理器遵守它们。使用这些特殊的预定义实体名称,在评估元素内容时,这些名称将替换为它代表的实际字符。
name | characters
----- | ------
< | <
> | >
& | &
" | "
' | '
示例:
<description>
<a href="http://server.com/link">A & B</a>
</description>
2。 CDATA
另一种在 XML 元素内转义标记的机制是 CDATA。 CDATA 部分是元素内容的一部分,它被标记为供解析器解释为仅 character 数据,而不是标记。
示例:
<description>
<![CDATA[
<a href="http://server.com/link">A & B</a>
]]>
</description>
我使用了带有 ENT_XML1 标志的 PHP 函数:
htmlentities($sString, ENT_XML1))