1

javascript を xml に保存し、必要に応じてドキュメントに配置したいと思います。しかし、xml パーサーは特殊文字 (<,>,",') の間のすべてのテキストを削除しているようです。それをやめるためにできることはありますか。入ってエスケープするのは実用的ではありません。コードはこちら:

$.ajax({
type: "GET",
    url: "/mwebphoto/xml/albums.xml",
    dataType: "xml",
    success: function(xml) {
        $(xml).find('album').each(function(){
            var xmlAlbum= $(this)
            var xmlTitle = $(this).find('title').text();
            var xmlEmbedCode = $(this).find('embedCode').text();

ありがとう

4

1 に答える 1

0

あなたのコードは構文的に間違っています: 宣言の後にセミコロンがxmlAlbumなく、イテレータを閉じていません (質問にコピーし忘れただけですか?)。

特殊文字をxmlに保存するには、それらを適切に表現する必要があります:

  • <->&#x3c;
  • >->&#x3e;
  • &->&#x26;
  • '->&#x27;
  • "->&#x22;

ただし、引用符はそのまま使用できることに注意してください。属性値の区切りの引用符に干渉しないようにしてください。

別のオプションは、問題のあるテキスト部分を cdata セクションにラップすることです ( <![CDATA[...]]>。この方法により、上記のエンコーディングを使用する必要がなくなります。

従いたいと思うかもしれない別のアプローチがあります: とはscript異なる MIME タイプが割り当てられたブロックにjs コードを埋め込みますtext/javascript。ブロックはdomに採用され、アクセス可能になります。適切なjqueryセレクターを介して。

警告: 純粋な js でその方法を試したことはありません。ユーザー エージェントは、MIME タイプにもかかわらず、コードを実行するのがあまりにもインテリジェントである可能性があります。

于 2013-08-06T00:54:27.557 に答える