Permalink
Browse files

Provide stylesheet for in-browser transform

  • Loading branch information...
1 parent f029723 commit 7c12762a5c5550a27787258db9bfd40187c4ea47 @sergeche committed Feb 14, 2011
Showing with 167 additions and 5 deletions.
  1. +141 −0 browser.xsl
  2. +14 −1 build/build.xml
  3. +1 −1 css/_colorizer.css
  4. +8 −0 css/_outline.css
  5. +3 −3 src/utils.js
View
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output
+ method="html"
+ version="1.0"
+ encoding="utf-8"
+ indent="no"
+ cdata-section-elements="script"
+/>
+
+<xsl:template match="/">
+<html lang="en-US">
+ <head>
+ <meta charset="UTF-8"/>
+ <xsl:comment>
+ <xsl:value-of select="concat(system-property('xsl:version'), '/', system-property('xsl:vendor'), '/', system-property('xsl:vendor-url'))"/>
+ </xsl:comment>
+
+ <style type="text/css">
+ <![CDATA[ @CSS@ ]]>
+ </style>
+ </head>
+ <body>
+ <div class="xv-search-panel">
+ <input type="search" class="xv-search-field" spellcheck="false" placeholder="Search by name or XPath" />
+ <span class="xv-search-xpath-result"></span>
+ </div>
+ <div class="xv-source-pane">
+ <div class="xv-source-pane-inner"></div>
+ </div>
+
+ <div id="xv-source-data"><xsl:apply-templates/></div>
+
+ <script type="text/javascript">
+ <![CDATA[
+ @JS@
+ ;xv_controller.process(document.getElementById('xv-source-data').textContent);
+ ]]>
+ </script>
+ </body>
+</html>
+</xsl:template>
+
+
+<xsl:template match="comment()">
+ &lt;!-- <xsl:value-of select="." /> -->
+</xsl:template>
+
+<xsl:template match="processing-instruction()">
+ &lt;?<xsl:value-of select="name()"/><xsl:if test="string-length(.) > 0"><xsl:text> </xsl:text><xsl:value-of select="."/></xsl:if>?>
+</xsl:template>
+
+<xsl:template match="text()">
+ <xsl:apply-templates select="." mode="attr-process"/>
+</xsl:template>
+
+
+<!-- elements with mixed content -->
+<xsl:template match="*[*|comment()|processing-instruction()]">
+ &lt;<xsl:value-of select="name()"/><xsl:call-template name='namespaces'/><xsl:apply-templates select="@*"/>>
+ <xsl:apply-templates/>
+ &lt;/<xsl:value-of select="name()"/>>
+</xsl:template>
+
+
+<!-- elements without mixed content -->
+<xsl:template match="*">
+ <xsl:variable name="lname" select="concat('name_', local-name())" />
+ &lt;<xsl:value-of select="name()"/><xsl:call-template name='namespaces'/><xsl:apply-templates select="@*"/>><xsl:apply-templates/>&lt;/<xsl:value-of select="name()"/>>
+</xsl:template>
+
+<xsl:template match="@*">
+ <xsl:text> </xsl:text><xsl:value-of select="name()"/>=<xsl:apply-templates select="." mode="attrvalue"/>
+</xsl:template>
+
+<!-- Try to emit well-formed markup for all single/double quote combinations in attribute values -->
+<xsl:template match="@*[not(contains(., '&quot;'))]" mode='attrvalue'>"<xsl:apply-templates select="." mode="attr-process"/>"</xsl:template>
+<xsl:template match='@*[not(contains(., "&apos;"))]' mode='attrvalue'>'<xsl:apply-templates select="." mode="attr-process"/>'</xsl:template>
+<xsl:template match='@*[contains(., "&apos;") and contains(., &apos;"&apos;)]' mode='attrvalue'>"<xsl:variable name="attr">
+ <xsl:apply-templates select="." mode="attr-process"/>
+ </xsl:variable><xsl:call-template name="replaceCharsInString">
+ <xsl:with-param name="stringIn" select="$attr"/>
+ <xsl:with-param name="charsIn" select="'&quot;'"/>
+ <xsl:with-param name="charsOut" select="'&amp;quot;'"/>
+</xsl:call-template>"</xsl:template>
+
+<!-- Default attribute processing: escape &, < and > -->
+<xsl:template match="@*|text()" mode="attr-process"><xsl:variable name="p1"><xsl:call-template name="replaceCharsInString">
+ <xsl:with-param name="stringIn" select="string(.)" />
+ <xsl:with-param name="charsIn" select="'&amp;'" />
+ <xsl:with-param name="charsOut" select="'&amp;amp;'" />
+ </xsl:call-template></xsl:variable>
+ <xsl:variable name="p2"><xsl:call-template name="replaceCharsInString">
+ <xsl:with-param name="stringIn" select="$p1" />
+ <xsl:with-param name="charsIn" select="'&lt;'" />
+ <xsl:with-param name="charsOut" select="'&amp;lt;'" />
+ </xsl:call-template></xsl:variable>
+ <xsl:call-template name="replaceCharsInString">
+ <xsl:with-param name="stringIn" select="$p2" />
+ <xsl:with-param name="charsIn" select="'&gt;'" />
+ <xsl:with-param name="charsOut" select="'&amp;gt;'" />
+ </xsl:call-template></xsl:template>
+
+
+<!-- Emit namespace declarations -->
+<xsl:template name="namespaces">
+ <xsl:for-each select="@*|.">
+ <xsl:variable name="my_ns" select="namespace-uri()"/>
+ <!-- Emit a namespace declaration if this element or attribute has a namespace and no ancestor already defines it.
+ Currently this produces redundant declarations for namespaces used only on attributes. -->
+ <xsl:if test="$my_ns and not(ancestor::*[namespace-uri() = $my_ns])">
+ <xsl:variable name="prefix" select="substring-before(name(), local-name())"/>
+ xmlns<xsl:if test="$prefix">:<xsl:value-of select="substring-before($prefix, ':')"/></xsl:if>='<xsl:value-of select="namespace-uri()"/>'
+ </xsl:if>
+ </xsl:for-each>
+</xsl:template>
+
+
+<!-- string search/replace used in the attribute quote templates above. From http://www.dpawson.co.uk/xsl/sect2/replace.html -->
+<xsl:template name="replaceCharsInString">
+ <xsl:param name="stringIn" />
+ <xsl:param name="charsIn" />
+ <xsl:param name="charsOut" />
+ <xsl:choose>
+ <xsl:when test="contains($stringIn,$charsIn)">
+ <xsl:value-of select="concat(substring-before($stringIn,$charsIn),$charsOut)" />
+ <xsl:call-template name="replaceCharsInString">
+ <xsl:with-param name="stringIn" select="substring-after($stringIn,$charsIn)" />
+ <xsl:with-param name="charsIn" select="$charsIn" />
+ <xsl:with-param name="charsOut" select="$charsOut" />
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$stringIn" />
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+</xsl:stylesheet>
View
@@ -60,7 +60,20 @@
<copy file="${js-src.dir}/dnd_feedback.js" todir="${dist.chrome.dir}"/>
</target>
- <target name="compile" depends="compile.css, compile.js, chrome.extension">
+ <target name="browser.stylesheet" depends="compile.css, compile.js">
+ <loadfile property="browser.compiled-css" srcFile="${dist.css.dir}/main.css"/>
+ <loadfile property="browser.compiled-js" srcFile="${dist.js.dir}/xv.js"/>
+ <copy file="${basedir}/browser.xsl" todir="${dist.dir}" overwrite="true">
+ <filterchain>
+ <replacetokens>
+ <token key="CSS" value="${browser.compiled-css}"/>
+ <token key="JS" value="${browser.compiled-js}"/>
+ </replacetokens>
+ </filterchain>
+ </copy>
+ </target>
+
+ <target name="compile" depends="compile.css, compile.js, chrome.extension, browser.stylesheet">
<copy file="${basedir}/xml-pretty-print.xslt" tofile="${dist.dir}/xmlview.xsl"/>
<echo>Build done</echo>
</target>
View
@@ -188,7 +188,7 @@
}
.xv-collapsed > .xv-cdata-start:after {
- content: ']]>';
+ content: ']]\u003E';
}
.xv-pi {
View
@@ -65,6 +65,8 @@
.xv-outline-tag-name {
-webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNq8ljtLA0EQx3fvmTSmEoKptVAwhTYpVLAQW0EQBMFC8NsI9oJBEKwsRLAyhQpKEDSGROMDH5hgfMRHkrvL5W7X2UPz4ExSeHd/GOb2ipvf7czOLKaUona6yn5Ng1sHk5AzSoPFwZZ6Q11J9gK3g7jMfjKADVEWeY7jHCFg8YhJkFE1dFgu9oUC0ZYQmccGAJ5DTosSinRNZyDDf0JcPHzMsBSIPncAfmVWTWToxpZgS9j9+yy4Nckn8RhS0KFk/iWO5xGh1bEmiNRdoQEAI+omQb1GAjWI5G1hDtwqA0CwA8T9+JZYHAsicfM2D25F9suup8AGARTCyfVrDQBhbL30UgT+WKA/QSkBw8hzsfjWET3OPFsFyXYD5CmEUlLqHTN+np9izUn2Q2UK3oEoxXJz2z5K5yfBbcKO+AWPQMpFxT47DlNP4+C2JR+AiILbPQKpJeXF1pMjA8EYVOyEpmqlqm5Yx9UtY9+HWLGWA+zgLBcBtwOpCQii6PzRNE2kllUVHgfbjvL9RG6IgUBqukVJdKg5EUQME1W0ignLhZFwTxR3mg97iWw/uF2woMOXmuXRcOi046XGK30LMAA+VQNxLbtsiAAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ -moz-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNq8ljtLA0EQx3fvmTSmEoKptVAwhTYpVLAQW0EQBMFC8NsI9oJBEKwsRLAyhQpKEDSGROMDH5hgfMRHkrvL5W7X2UPz4ExSeHd/GOb2ipvf7czOLKaUona6yn5Ng1sHk5AzSoPFwZZ6Q11J9gK3g7jMfjKADVEWeY7jHCFg8YhJkFE1dFgu9oUC0ZYQmccGAJ5DTosSinRNZyDDf0JcPHzMsBSIPncAfmVWTWToxpZgS9j9+yy4Nckn8RhS0KFk/iWO5xGh1bEmiNRdoQEAI+omQb1GAjWI5G1hDtwqA0CwA8T9+JZYHAsicfM2D25F9suup8AGARTCyfVrDQBhbL30UgT+WKA/QSkBw8hzsfjWET3OPFsFyXYD5CmEUlLqHTN+np9izUn2Q2UK3oEoxXJz2z5K5yfBbcKO+AWPQMpFxT47DlNP4+C2JR+AiILbPQKpJeXF1pMjA8EYVOyEpmqlqm5Yx9UtY9+HWLGWA+zgLBcBtwOpCQii6PzRNE2kllUVHgfbjvL9RG6IgUBqukVJdKg5EUQME1W0ignLhZFwTxR3mg97iWw/uF2woMOXmuXRcOi046XGK30LMAA+VQNxLbtsiAAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNq8ljtLA0EQx3fvmTSmEoKptVAwhTYpVLAQW0EQBMFC8NsI9oJBEKwsRLAyhQpKEDSGROMDH5hgfMRHkrvL5W7X2UPz4ExSeHd/GOb2ipvf7czOLKaUona6yn5Ng1sHk5AzSoPFwZZ6Q11J9gK3g7jMfjKADVEWeY7jHCFg8YhJkFE1dFgu9oUC0ZYQmccGAJ5DTosSinRNZyDDf0JcPHzMsBSIPncAfmVWTWToxpZgS9j9+yy4Nckn8RhS0KFk/iWO5xGh1bEmiNRdoQEAI+omQb1GAjWI5G1hDtwqA0CwA8T9+JZYHAsicfM2D25F9suup8AGARTCyfVrDQBhbL30UgT+WKA/QSkBw8hzsfjWET3OPFsFyXYD5CmEUlLqHTN+np9izUn2Q2UK3oEoxXJz2z5K5yfBbcKO+AWPQMpFxT47DlNP4+C2JR+AiILbPQKpJeXF1pMjA8EYVOyEpmqlqm5Yx9UtY9+HWLGWA+zgLBcBtwOpCQii6PzRNE2kllUVHgfbjvL9RG6IgUBqukVJdKg5EUQME1W0ignLhZFwTxR3mg97iWw/uF2woMOXmuXRcOi046XGK30LMAA+VQNxLbtsiAAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
border-width:1px 5px 2px 10px;
padding-left:2px;
padding-right: 1px;
@@ -76,6 +78,8 @@
.xv-outline-pi-name {
-webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNrElr9Lw0AUx++Sy6VOdSkWnTroUEQsFUEXwcFVBEEQFAfB/0ZwFyyC4CaI4GRHlYK02lL7Q+1kUepPkKZpcjnftU2hatsliQ8ej0uG+9z3/bjDnHPUy0rFz2UIB+AUOWNZ8AT4dmjUnxYfcC+IUuFDABwSSmUsSY4QiP24ZSFmGHVYboXGBmNdIR7yLQBVcQygA8biyNTrAmTqT4j73PuKSAFRqSsAtlkmE4ock58/7m7fViHsK6oqYwwA3DUGJMEBTc7nOiCK2RYA1ACUS0Mytw0S4W9DFDKvaxD2hAIIFODu79+ujQZEPv2yAWG3CYAR94qg1S0kd11pAvh8nirQoYSddrHAyGMC0SGwpRSeDMQAYF3XaoxBywglPHVxeDv/mavnJTGcqKpSSZY9U6JWraL2JBqPDh0B1SIoopmG+T9K2HaTeJqHcAKzYkAmxPXO0DWt8msmT0wH4/Bzoa7rXwwUadSqS85MoTiPd73AUpflGQinlKp+mSjOd4XFkF7TNHHunld58qIcFSCQmgBRFIfmAlzj4IauM1huRmaGY7jfdEyeP4YhnIEHHX7U7ERmR1J9HzVe2bcAAwDBk19xRcNjtQAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ -moz-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNrElr9Lw0AUx++Sy6VOdSkWnTroUEQsFUEXwcFVBEEQFAfB/0ZwFyyC4CaI4GRHlYK02lL7Q+1kUepPkKZpcjnftU2hatsliQ8ej0uG+9z3/bjDnHPUy0rFz2UIB+AUOWNZ8AT4dmjUnxYfcC+IUuFDABwSSmUsSY4QiP24ZSFmGHVYboXGBmNdIR7yLQBVcQygA8biyNTrAmTqT4j73PuKSAFRqSsAtlkmE4ock58/7m7fViHsK6oqYwwA3DUGJMEBTc7nOiCK2RYA1ACUS0Mytw0S4W9DFDKvaxD2hAIIFODu79+ujQZEPv2yAWG3CYAR94qg1S0kd11pAvh8nirQoYSddrHAyGMC0SGwpRSeDMQAYF3XaoxBywglPHVxeDv/mavnJTGcqKpSSZY9U6JWraL2JBqPDh0B1SIoopmG+T9K2HaTeJqHcAKzYkAmxPXO0DWt8msmT0wH4/Bzoa7rXwwUadSqS85MoTiPd73AUpflGQinlKp+mSjOd4XFkF7TNHHunld58qIcFSCQmgBRFIfmAlzj4IauM1huRmaGY7jfdEyeP4YhnIEHHX7U7ERmR1J9HzVe2bcAAwDBk19xRcNjtQAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAcJJREFUeNrElr9Lw0AUx++Sy6VOdSkWnTroUEQsFUEXwcFVBEEQFAfB/0ZwFyyC4CaI4GRHlYK02lL7Q+1kUepPkKZpcjnftU2hatsliQ8ej0uG+9z3/bjDnHPUy0rFz2UIB+AUOWNZ8AT4dmjUnxYfcC+IUuFDABwSSmUsSY4QiP24ZSFmGHVYboXGBmNdIR7yLQBVcQygA8biyNTrAmTqT4j73PuKSAFRqSsAtlkmE4ock58/7m7fViHsK6oqYwwA3DUGJMEBTc7nOiCK2RYA1ACUS0Mytw0S4W9DFDKvaxD2hAIIFODu79+ujQZEPv2yAWG3CYAR94qg1S0kd11pAvh8nirQoYSddrHAyGMC0SGwpRSeDMQAYF3XaoxBywglPHVxeDv/mavnJTGcqKpSSZY9U6JWraL2JBqPDh0B1SIoopmG+T9K2HaTeJqHcAKzYkAmxPXO0DWt8msmT0wH4/Bzoa7rXwwUadSqS85MoTiPd73AUpflGQinlKp+mSjOd4XFkF7TNHHunld58qIcFSCQmgBRFIfmAlzj4IauM1huRmaGY7jfdEyeP4YhnIEHHX7U7ERmR1J9HzVe2bcAAwDBk19xRcNjtQAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
border-width:1px 5px 2px 10px;
padding: 0 1px 0 2px;
color:#40368f;
@@ -85,6 +89,8 @@
.xv-outline-cdata-name {
-webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZJJREFUeNpi/P//PwM+cPn9hRAgtRSI2RioA64B8Skg7tMVNLgMEmDE5wioA1awsbExMzExUcUFIPv+/fvH8Pv3719AbjrQIQtwOuLSu/NwBwABA7UByCE/f/4EOcQEqyMuvj0XDooCWjkABv78+QMKkU0s6BLnX5+JAlKL2NnZwVFAKM1QAkDmA0PEHsUR516dppsDkNIIP9wRZ1+eigVS8+npAFhCBTvi9PMTCUBqDgcHB10dAEugLKeeHYc7gJGRESxITwAOCZilIA49QwA5JMBZ9PjjI+AECQoNWmZJbODr16+IEvPow0OBoMIJ6BA2FhYWujniy5cvDPCy2Frebj3QQf7fgQBYgMCjhx4YpUKwUbDfART0ATnk169fNLcclB6A9GuMWslW0WEfUMLtx48fX2jtEKj5+3BWYAfu7LUEUtuBaYSflZWV6mnh79+/DN++ffsOZOrhrcr3395jDHIIsBQVBVZmVMuSIAcAQ/ovkJviqOqygJFQ2QB0iBaQ2gvEElRu1EwEOuACSAAgwABrnbxcf6GNlgAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ -moz-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZJJREFUeNpi/P//PwM+cPn9hRAgtRSI2RioA64B8Skg7tMVNLgMEmDE5wioA1awsbExMzExUcUFIPv+/fvH8Pv3719AbjrQIQtwOuLSu/NwBwABA7UByCE/f/4EOcQEqyMuvj0XDooCWjkABv78+QMKkU0s6BLnX5+JAlKL2NnZwVFAKM1QAkDmA0PEHsUR516dppsDkNIIP9wRZ1+eigVS8+npAFhCBTvi9PMTCUBqDgcHB10dAEugLKeeHYc7gJGRESxITwAOCZilIA49QwA5JMBZ9PjjI+AECQoNWmZJbODr16+IEvPow0OBoMIJ6BA2FhYWujniy5cvDPCy2Frebj3QQf7fgQBYgMCjhx4YpUKwUbDfART0ATnk169fNLcclB6A9GuMWslW0WEfUMLtx48fX2jtEKj5+3BWYAfu7LUEUtuBaYSflZWV6mnh79+/DN++ffsOZOrhrcr3395jDHIIsBQVBVZmVMuSIAcAQ/ovkJviqOqygJFQ2QB0iBaQ2gvEElRu1EwEOuACSAAgwABrnbxcf6GNlgAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
+ border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAASCAYAAADVCrdsAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZJJREFUeNpi/P//PwM+cPn9hRAgtRSI2RioA64B8Skg7tMVNLgMEmDE5wioA1awsbExMzExUcUFIPv+/fvH8Pv3719AbjrQIQtwOuLSu/NwBwABA7UByCE/f/4EOcQEqyMuvj0XDooCWjkABv78+QMKkU0s6BLnX5+JAlKL2NnZwVFAKM1QAkDmA0PEHsUR516dppsDkNIIP9wRZ1+eigVS8+npAFhCBTvi9PMTCUBqDgcHB10dAEugLKeeHYc7gJGRESxITwAOCZilIA49QwA5JMBZ9PjjI+AECQoNWmZJbODr16+IEvPow0OBoMIJ6BA2FhYWujniy5cvDPCy2Frebj3QQf7fgQBYgMCjhx4YpUKwUbDfART0ATnk169fNLcclB6A9GuMWslW0WEfUMLtx48fX2jtEKj5+3BWYAfu7LUEUtuBaYSflZWV6mnh79+/DN++ffsOZOrhrcr3395jDHIIsBQVBVZmVMuSIAcAQ/ovkJviqOqygJFQ2QB0iBaQ2gvEElRu1EwEOuACSAAgwABrnbxcf6GNlgAAAABJRU5ErkJggg==) 1 5 2 10 stretch stretch;
border-width:1px 5px 2px 10px;
padding: 0 1px 0 2px;
color:#105913;
@@ -180,6 +186,8 @@
.xv-outline-node-selected > .xv-outline-node-inner > .xv-outline-cdata-name {
color:#fff;
-webkit-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNpiZCAArt19EgKklgIxGwN1wDUgPgXEfVrKMpdBAoz4HfAY5IAVr9+8Zf7x8xdVXMDKwsLAzs7GICjADzIwXUtZdgFOR1y98wjsgLfvPjIzMjEzUAv8+/eP4e/fvwxMQJtFRQRBDjHB6ogrtx+Gg6LgzbsPVHUAOmABuoSHm2MrC7rE5VsPo/7/Z1j0+u17ZgYmJpDTaeaIf/9BYcBkh+KISzcfAB3wf9Gr1+8gDvhLOwfAACMjIy/cERdv3I8FOmD+i9dvmRkYaRsCyABoJwPYEeev30v49///nOcv30BC4D99HACJEqAjzl27mwB0zZynL15DQuAv/RwAD4kXz5/xiImJM4Ly78/ffxjoDf4Do53Jy9l2+amTx2uFBXj/sbIwA/PwP7piUEiACoHvWzdtuKqlrftGXV3N8efv38y/gCECkqQH5uflYoCVRN93bttyXUlZ5bmWlqbzrz9/WH7SySECvNwMyMXhj727d9yQU1B4rKOt7fb791+Wn79+09QBTIzAEpOL/T16mfzzwN7dtyQkpe/r6+u7/v7zl/UHDR3Cy83J8OvHt0PYKoZfhw/suyMqJnbf0MDA5c+/f2w/fv1i+E9lyM7GyiAmxP9zw7pVmbhqp19HDx24w88veMvIyMjp37//nN+BVTnQ8RRjUFHAzcnBICki+O/i+bOt9VWlyxkJZGOutKw89+j4pNksLCzC1CgXfv78ee/Tx49Xd+/YunzqxN5dQKG3jETo4wBiNVB7hErl0w8g/grEr4D4G0gAIMAALC2j5MjdajEAAAAASUVORK5CYII=) 1 5 2 10 stretch stretch;
+ -moz-border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNpiZCAArt19EgKklgIxGwN1wDUgPgXEfVrKMpdBAoz4HfAY5IAVr9+8Zf7x8xdVXMDKwsLAzs7GICjADzIwXUtZdgFOR1y98wjsgLfvPjIzMjEzUAv8+/eP4e/fvwxMQJtFRQRBDjHB6ogrtx+Gg6LgzbsPVHUAOmABuoSHm2MrC7rE5VsPo/7/Z1j0+u17ZgYmJpDTaeaIf/9BYcBkh+KISzcfAB3wf9Gr1+8gDvhLOwfAACMjIy/cERdv3I8FOmD+i9dvmRkYaRsCyABoJwPYEeev30v49///nOcv30BC4D99HACJEqAjzl27mwB0zZynL15DQuAv/RwAD4kXz5/xiImJM4Ly78/ffxjoDf4Do53Jy9l2+amTx2uFBXj/sbIwA/PwP7piUEiACoHvWzdtuKqlrftGXV3N8efv38y/gCECkqQH5uflYoCVRN93bttyXUlZ5bmWlqbzrz9/WH7SySECvNwMyMXhj727d9yQU1B4rKOt7fb791+Wn79+09QBTIzAEpOL/T16mfzzwN7dtyQkpe/r6+u7/v7zl/UHDR3Cy83J8OvHt0PYKoZfhw/suyMqJnbf0MDA5c+/f2w/fv1i+E9lyM7GyiAmxP9zw7pVmbhqp19HDx24w88veMvIyMjp37//nN+BVTnQ8RRjUFHAzcnBICki+O/i+bOt9VWlyxkJZGOutKw89+j4pNksLCzC1CgXfv78ee/Tx49Xd+/YunzqxN5dQKG3jETo4wBiNVB7hErl0w8g/grEr4D4G0gAIMAALC2j5MjdajEAAAAASUVORK5CYII=) 1 5 2 10 stretch stretch;
+ border-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAATCAYAAAAeVmTJAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAk1JREFUeNpiZCAArt19EgKklgIxGwN1wDUgPgXEfVrKMpdBAoz4HfAY5IAVr9+8Zf7x8xdVXMDKwsLAzs7GICjADzIwXUtZdgFOR1y98wjsgLfvPjIzMjEzUAv8+/eP4e/fvwxMQJtFRQRBDjHB6ogrtx+Gg6LgzbsPVHUAOmABuoSHm2MrC7rE5VsPo/7/Z1j0+u17ZgYmJpDTaeaIf/9BYcBkh+KISzcfAB3wf9Gr1+8gDvhLOwfAACMjIy/cERdv3I8FOmD+i9dvmRkYaRsCyABoJwPYEeev30v49///nOcv30BC4D99HACJEqAjzl27mwB0zZynL15DQuAv/RwAD4kXz5/xiImJM4Ly78/ffxjoDf4Do53Jy9l2+amTx2uFBXj/sbIwA/PwP7piUEiACoHvWzdtuKqlrftGXV3N8efv38y/gCECkqQH5uflYoCVRN93bttyXUlZ5bmWlqbzrz9/WH7SySECvNwMyMXhj727d9yQU1B4rKOt7fb791+Wn79+09QBTIzAEpOL/T16mfzzwN7dtyQkpe/r6+u7/v7zl/UHDR3Cy83J8OvHt0PYKoZfhw/suyMqJnbf0MDA5c+/f2w/fv1i+E9lyM7GyiAmxP9zw7pVmbhqp19HDx24w88veMvIyMjp37//nN+BVTnQ8RRjUFHAzcnBICki+O/i+bOt9VWlyxkJZGOutKw89+j4pNksLCzC1CgXfv78ee/Tx49Xd+/YunzqxN5dQKG3jETo4wBiNVB7hErl0w8g/grEr4D4G0gAIMAALC2j5MjdajEAAAAASUVORK5CYII=) 1 5 2 10 stretch stretch;
text-shadow: 0 1px #6b757f;
}
View
@@ -97,9 +97,9 @@ var xv_utils = (function(){
|| result.getElementsByTagName('parsererror').length) {
- var error = result.getElementsByTagName('parsererror')[0];
-
- throw "<h2>Can’t parse XML document</h2> \n" + (error ? error.innerHTML : '');
+ var error = result.getElementsByTagName('parsererror')[0];
+ console.log(error);
+ throw "<h2>Can’t parse XML document</h2> \n" + (error ? error.textContent : '');
}
return result;

0 comments on commit 7c12762

Please sign in to comment.