2017-08-07 76 views
-1

在KML中包含&字符的正確格式是什麼?我在名稱標籤中使用它們。如果我包含常規'&',那麼它是無效的。如何在KML中添加&符號?

我需要正確編碼哪些其他字符?

我使用這個格式:

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

我正在尋找一個PHP的解決方案。我正在用PHP創建KML。

回答

3

KML是一個XML文件,所以只要遵循XML規則,特殊字符進行編碼。 在XML中,您可以編碼「&」和其他帶有「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

要在標記語言(如XML,HTML/XHTML或KML等派生格式)中轉義特殊字符(例如和號),請使用HTML實體。

在你的情況&成爲&amp;

您可以找到有關此頁面上的實體的更多信息:Character_references

+0

我用值在PHPヶ輛()和現在我從它創建得到一個錯誤:' –' –

0

我用PHP功能與ENT_XML1標誌:

htmlentities($sString, ENT_XML1)) 
+0

請。如果其中一個答案對你有幫助,請對它投個票:[當有人回答我的問題時我應該怎麼做?](https://stackoverflow.com/help/someone-answers) – TwystO