在 KML 中包含与号的正确格式是什么?我在名称标签中使用它们。如果我包含一个常规的 '&' 那么它是无效的。
我需要正确编码哪些其他字符?
我正在使用这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个 PHP 解决方案。我正在用 PHP 创建 KML。
KML 是一个 XML 文件,因此只需按照 XML 规则对特殊字符进行编码。在 XML 中,您可以使用代表相关特殊字符的“预定义实体”或使用CDATA部分对“&”和其他特殊字符进行编码。
1. 预定义实体
XML 规范定义了五个代表特殊字符的“预定义实体”,并要求所有 XML 处理器都遵守它们。使用这些特殊的预定义实体名称,这些名称在评估元素内容时会替换为它所代表的实际字符。
name | characters
----- | ------
< | <
> | >
& | &
" | "
' | '
Run Code Online (Sandbox Code Playgroud)
例子:
<description>
<a href="http://server.com/link">A & B</a>
</description>
Run Code Online (Sandbox Code Playgroud)
2. 数据中心
另一种在 XML 元素中转义标记的机制是 CDATA。CDATA 部分是元素内容的一部分,标记为解析器仅将其解释为字符数据,而不是标记。
例子:
<description>
<![CDATA[
<a href="http://server.com/link">A & B</a>
]]>
</description>
Run Code Online (Sandbox Code Playgroud)