SyntaxHighlighter不格式化xml文本

Xul*_*fee 6 xml syntax-highlighting asp.net-mvc-3

参考文件:

<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" />
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

JavaScript代码:

<script type="text/javascript">
    SyntaxHighlighter.all()
</script
Run Code Online (Sandbox Code Playgroud)

这里有参考教程

Mak*_*jer 1

如果您查看源代码,您会发现您对 XML 进行了两次扩展,因为在再次编码@时已经对文本@Html.Encode(..)进行了编码。因此,您没有获得 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>
Run Code Online (Sandbox Code Playgroud)