2017-08-07 8 views
-1

アンパサンドをKMLに組み込むための適切な形式は何ですか?私は名前タグでそれらを使用しています。通常の「&」を含めると無効です。アンパサンドをKMLに追加するにはどうすればよいですか?

正しくエンコードするためには他にどのような文字が必要ですか?私はPHPソリューションを探しています

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

私はこのフォーマットを使用しています。私はPHPでKMLを作成しています。

答えて

3

KMLはそう簡単に特殊文字をエンコードするためにXMLのルールに従ったXMLファイルです。 XMLでは、 "&"と、関連する特殊文字を表す、またはCDATAセクションを使用する "predefined entities"の他の特殊文字をエンコードできます。

  1. 定義済みエンティティ

XML仕様は特殊文字を表す5「の定義済み実体」を定義し、すべての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セクションは、パーサが文字データ(マークアップではない)として解釈するようにマークされた要素コンテンツのセクションです。

例:私は値上のPHPにhtmlentities()を使用し、今私が作成し、それからエラーを取得しています

htmlentities($sString, ENT_XML1)) 
1

アンパサンドなどの特殊文字をXML、HTML/XHTMLなどのマークアップ言語やKMLなどの派生フォーマットでエスケープするには、HTMLエンティティを使用します。あなたのケースでは

&&amp;

になるあなたはこのページ上のエンティティに関する詳細な情報を見つけることができます。Character_references

+0

:「私はENT_XML1フラグでPHP関数を使用

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

0

– '
+0

ください。この回答の1つがあなたを助けてくれたら、投票してください:[私の質問に誰かが答えるときはどうすればいいですか?](https://stackoverflow.com/help/someone-answers) – TwystO

関連する問題