All pastes #780632 Raw Edit

fearphage

public javascript v1 · immutable
·published 2007-11-18 17:09 UTC
rendered paste body
// ==UserScript==// @include *.xmlaa// @include *.xsl// ==/UserScript==//opera.postError('triggered');FeedView = { init: function() { } };opera.addEventListener('BeforeEvent.DOMContentLoaded'  ,function(e) {  	opera.removeEventListener('BeforeEvent.DOMContentLoaded', arguments.callee, false);  	var eLoc = escape(location.href), processor = new XSLTProcessor(), xsl = '\<!DOCTYPE xsl:stylesheet [\n\  <!ENTITY xml.nostylesheet "This XML file does not appear to have any style information associated with it. The document tree is shown below.">\n\]>\n\<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">\n\  <xsl:output method="html"/>\n\  <xsl:template match="/">\n\    <link href="XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>\n\    <link title="Monospace" href="XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>\n\    <div id="header"><p>&xml.nostylesheet;</p></div>\n\    <xsl:apply-templates/>\n\  </xsl:template>\n\  <xsl:template match="*">\n\    <div class="indent">\n\      <span class="markup">&lt;</span>\n\      <span class="start-tag"><xsl:value-of select="name(.)"/></span>\n\      <xsl:apply-templates select="@*"/>\n\      <span class="markup">/&gt;</span>\n\    </div>\n\  </xsl:template>\n\  <xsl:template match="*[node()]">\n\    <div class="indent">\n\      <span class="markup">&lt;</span>\n\      <span class="start-tag"><xsl:value-of select="name(.)"/></span>\n\      <xsl:apply-templates select="@*"/>\n\      <span class="markup">&gt;</span>\n\      <span class="text"><xsl:value-of select="."/></span>\n\      <span class="markup">&lt;/</span>\n\      <span class="end-tag"><xsl:value-of select="name(.)"/></span>\n\      <span class="markup">&gt;</span>\n\    </div>\n\  </xsl:template>\n\  <xsl:template match="*[* or processing-instruction() or comment() or string-length(.) &gt; 50]">\n\    <table>\n\      <tr>\n\        <xsl:call-template name="expander"/>\n\        <td>\n\          <span class="markup">&lt;</span>\n\          <span class="start-tag"><xsl:value-of select="name(.)"/></span>\n\          <xsl:apply-templates select="@*"/>\n\          <span class="markup">&gt;</span>\n\          <div class="expander-content"><xsl:apply-templates/></div>\n\          <span class="markup">&lt;/</span>\n\          <span class="end-tag"><xsl:value-of select="name(.)"/></span>\n\          <span class="markup">&gt;</span>\n\        </td>\n\      </tr>\n\    </table>\n\  </xsl:template>\n\  <xsl:template match="@*">\n\    <xsl:text> </xsl:text>\n\    <span class="attribute-name"><xsl:value-of select="name(.)"/></span>\n\    <span class="markup">=</span>\n\    <span class="attribute-value">"<xsl:value-of select="."/>"</span>\n\  </xsl:template>\n\  <xsl:template match="text()">\n\    <xsl:if test="normalize-space(.)">\n\      <div class="indent text"><xsl:value-of select="."/></div>\n\    </xsl:if>\n\  </xsl:template>\n\  <xsl:template match="processing-instruction()">\n\    <div class="indent pi">\n\      <xsl:text>&lt;?</xsl:text>\n\      <xsl:value-of select="name(.)"/>\n\      <xsl:text> </xsl:text>\n\      <xsl:value-of select="."/>\n\      <xsl:text>?&gt;</xsl:text>\n\    </div>\n\  </xsl:template>\n\  <xsl:template match="processing-instruction()[string-length(.) &gt; 50]">\n\    <table>\n\      <tr>\n\        <xsl:call-template name="expander"/>\n\        <td class="pi">\n\          &lt;?<xsl:value-of select="name(.)"/>\n\          <div class="indent expander-content"><xsl:value-of select="."/></div>\n\          <xsl:text>?&gt;</xsl:text>\n\        </td>\n\      </tr>\n\    </table>\n\  </xsl:template>\n\  <xsl:template match="comment()">\n\    <div class="comment indent">\n\      <xsl:text>&lt;!--</xsl:text>\n\      <xsl:value-of select="."/>\n\      <xsl:text>--&gt;</xsl:text>\n\    </div>\n\  </xsl:template>\n\  <xsl:template match="comment()[string-length(.) &gt; 50]">\n\    <table>\n\      <tr>\n\        <xsl:call-template name="expander"/>\n\        <td class="comment">\n\          <xsl:text>&lt;!--</xsl:text>\n\          <div class="indent expander-content"><xsl:value-of select="."/></div>\n\          <xsl:text>--&gt;</xsl:text>\n\        </td>\n\      </tr>\n\    </table>\n\  </xsl:template>\n\  <xsl:template name="expander">\n\    <td class="expander">&#x2212;<div class="spacer"/></td>\n\  </xsl:template>\n\</xsl:stylesheet>';  	xsl = (new DOMParser()).parseFromString(xsl,'text/xml');  	processor.importStylesheet(xsl);  	var doc = processor.transformToDocument(document);  	if (!doc.documentElement) { return; }  	document.removeChild(document.documentElement);  	document.appendChild(doc.documentElement);  }  ,false);