2017-06-08 2 views
0

XMLファイルとそのCSSスタイルシートをtextareaまたはdivにロードします。各XMLファイルには、それを正しく表示するCSSスタイルシートを持っていますCSSスタイリングでXMLを動的にロード

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet href="first.css"?> 
<?xml-stylesheet href="second.css"?> 
<book> 
    <sentence> 
    !!! SNIP !!! 

私はアドレスバーにそのURLを入力して、Webブラウザに直接ファイルをロードする場合、それはすべてのスタイリングを含め、正しく表示されます。今私はそれを動的にロードするのと同じ方法で表示したいと思います。

私はこれについていくつかのバリエーションを試しました。

<textarea id="display"> 
</textarea> 

$.ajax({ 
    type: "GET", 
    url: "https://raw.githubusercontent.com/someplace/my.xml", 
    dataType: "text", 
    success: function(xml) { 
     alert("GET succeeded") 
     var xmlDoc = $.parseXML(xml); 
     document.getElementById("display").append(xmlDoc.childNodes);  
    } 
}); 

パースされたXMLドキュメントにスタイルを動的に適用して表示する方法がわかりません。私はHTMLに変換したくないので、Webブラウザに正しく表示されている同じ文書を表示したいだけです。

誰でもこの方法を知っていますか?

答えて

1

XMLとCSSのポイントは、ブラウザでうまくレンダリングすることです。しかし、なぜtextareaで?表示されているタグがそれほど重要でない場合は、代わりにiframeタグで表示できます。そのiframesrc属性を変更することで、動的にロードすることができます。

+0

ありがとうございます - 私はそれを試してみましょう。 タグが何であるか気にしない限り、それは動作します。私は人々がフレームを避けるべきだと言う人がいると聞いてきましたが、私は理由は分かりません。 – user430799

+0

'iframe'は、同じページに表示される別のブラウザウィンドウです。人々はいろいろな方法でユーザーをだまそうとしており、「iframe」を利用しているのはその1つで、アドレスバーを介してユーザーに使用される実際のアドレスは示されていません。しかし、良いユースケースがあれば、それを避ける理由はありません。 – Code4R7

+0

src属性を設定してみましたが、メッセージがあります: 'https://raw.githubusercontent.com/some/file.xml'をフレームに表示することが拒否されました。 'X-Frame-Options '否定する'。 – user430799

関連する問題