SyntaxHighlighter不格式化xml文本

时间:2011-08-05 05:44:08

标签: xml asp.net-mvc-3 syntax-highlighting

参考文件:

<script src="../../Content/dp.SyntaxHighlighter/Scripts/shCore.js" type="text/javascript"></script>
<script src="../../Content/dp.SyntaxHighlighter/Scripts/shBrushXml.js" type="text/javascript"></script>
<link href="../../Content/dp.SyntaxHighlighter/Styles/SyntaxHighlighter.css" rel="stylesheet" type="text/css" />

html代码:

<pre class="brush:xml;">
@Html.Encode("<?xml version='1.0'?><response value='ok' xml:lang='en'>  <text>Ok</text>  <comment html_allowed='true'/>  <ns1:description>  descriptin.  </ns1:description>  <a></a> <a/></response>")
</pre>

JavaScript代码:

<script type="text/javascript">
    SyntaxHighlighter.all()
</script

这里有参考tutorial

1 个答案:

答案 0 :(得分:0)

如果您查看源代码,您会注意到,由于@已经对文本进行了编码,而@Html.Encode(..)再次对其进行了编码,因此您将对XML进行两次删除。因此,您没有获得SyntaxHighlighter未正确的输出作为代码。

使用此示例进行测试,一切正常:

<!DOCTYPE html>
<html>
    <head>
        <link href="http://alexgorbatchev.com/pub/sh/current/styles/shCore.css" 
            rel="stylesheet" type="text/css" />
        <link href="http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css"
            rel="stylesheet" type="text/css" />
    </head>
    <body>
        @{
            var xml = @"
                <?xml version='1.0'?>
                <response value='ok' xml:lang='en'>
                    <text>Ok</text>
                    <comment html_allowed='true'/>
                    <ns1:description>  descriptin.  </ns1:description>
                    <a></a>
                    <a/>
                </response>";
        }
        <pre class="brush: xml">
        @xml
        </pre>

        <script src="http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js"
            type="text/javascript"></script>
        <script src="http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js"
            type="text/javascript"></script>
        <script type="text/javascript">
            SyntaxHighlighter.autoloader(
                    'xml xhtml xslt html            http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js'
                );
            SyntaxHighlighter.all();
        </script>
    </body>
</html>