在KML中加入&符号的正确格式是什么?我在名称标签中使用它们。如果我加入常规'&'那么它是无效的。
我需要哪些其他字符才能正确编码?
我正在使用这种格式:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.2">
我正在寻找一个PHP解决方案。我正在用PHP创建KML。
答案 0 :(得分:4)
KML是一个XML文件,因此只需遵循XML规则即可对特殊字符进行编码。 在XML中,您可以编码“&amp;”和其他带有“predefined entities”的特殊字符,代表相关的特殊字符或使用CDATA部分。
<强> 1。预定义的实体
XML规范定义了五个代表特殊字符的“预定义实体”,并要求所有XML处理器都遵守它们。使用这些特殊的预定义实体名称,这些名称在评估元素内容时将替换为它所代表的实际字符。
name | characters
----- | ------
< | <
> | >
& | &
" | "
' | '
示例:
<description>
<a href="http://server.com/link">A & B</a>
</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实体。
在您的情况下&
成为&
您可以在此页面上找到有关实体的更多信息:Character_references
答案 2 :(得分:0)
我使用带有ENT_XML1标志的PHP函数:
agg(['count'])