2017-06-08 1 views
0

Ich möchte eine XML-Datei und ihre CSS-Stylesheets in eine textarea oder div laden. Jede XML-Datei hat CSS-Stylesheets, die es richtig angezeigt:Dynamisch XML mit CSS-Styling laden

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

Wenn ich die Datei direkt in einen Webbrowser laden, indem Sie die entsprechende URL in die Adressleiste eingeben, es korrekt angezeigt wird, einschließlich aller Styling. Jetzt möchte ich es genauso anzeigen und dynamisch laden.

Ich habe verschiedene Variationen dazu versucht, z.B.

Ich kann nicht herausfinden, wie Sie Styles dynamisch auf das analysierte XML-Dokument anwenden und es anzeigen. Ich möchte es nicht in HTML konvertieren, ich möchte nur dieselben Dokumente anzeigen, die bereits im Webbrowser korrekt angezeigt werden.

Wer weiß, wie man das macht?

Antwort

1

Der Punkt von XML und CSS ist, dass es in einem Browser gut rendert. Aber warum in einer textarea? Sie könnten es stattdessen mit einem iframe Tag anzeigen, wenn das Tag, in dem es angezeigt wird, nicht zu viel Bedeutung hat. Indem Sie das src Attribut dieses iframe ändern, können Sie es dynamisch laden.

+0

Danke - ich werde es versuchen. Es ist mir egal, was das Tag ist, solange es funktioniert. Ich habe gehört, dass Leute sagen, dass Frames zu vermeiden sind, aber ich bin mir nicht sicher warum. – user430799

+0

Ein 'iframe' ist im Wesentlichen ein anderes Browserfenster, das auf derselben Seite angezeigt wird. Leute haben versucht, Benutzer auf viele Arten zu täuschen, und das Ausnutzen des 'iframe' ist einer von ihnen, es zeigt nicht die tatsächliche Adresse an, die es dem Benutzer über die Adressleiste benutzt. Aber das ist kein Grund, es zu vermeiden, wenn Sie einen guten Anwendungsfall haben. – Code4R7

+0

Ich habe versucht, nur das src-Attribut zu setzen, aber ich habe eine Nachricht erhalten, die sagt: Weigerte, 'https://raw.githubusercontent.com/some/file.xml' in einem Rahmen anzuzeigen, weil es X-Frame-Optionen gesetzt ' bestreiten'. – user430799