Jupyter Notebook 输出单元格语法突出显示

Rob*_*łka 4 ipython jupyter-notebook

我正在使用 Jupyter 笔记本(Python 2.7 上的 IPython)。

我想动态显示一些 XML 内容,例如:

print dom.toprettyxml(indent='  ')
Run Code Online (Sandbox Code Playgroud)

但它在输出单元格中被格式化为纯文本。

我想将它与语法突出显示一起显示。是否可以?

我遇到过 IPython.display 与 Markdown、Latex 和其他几种,但没有 XML。(HTML 也在那里,但它对我没有帮助)。

问候,罗伯特

更新:由于反馈,我能够使用以下代码完成该任务:

from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython

def display_xml_nice(xml_element):
    formatter = HtmlFormatter()
    xml_indented = xml_element.toprettyxml(indent='  ')
    IPython.display.display(HTML('<style type="text/css">{}</style>{}'.format(
        formatter.get_style_defs('.highlight'),
        highlight(xml_indented, XmlLexer(), formatter))))
Run Code Online (Sandbox Code Playgroud)

Rob*_*łka 5

将代码正确标记为答案。

感谢反馈,我能够使用以下代码完成该任务:

from pygments import highlight
from pygments.lexers import XmlLexer
from pygments.formatters import HtmlFormatter
import IPython

def display_xml_nice(xml_element):
    formatter = HtmlFormatter()
    xml_indented = xml_element.toprettyxml(indent='  ')
    IPython.display.display(HTML('<style type="text/css">{}</style>    {}'.format(
    formatter.get_style_defs('.highlight'),
    highlight(xml_indented, XmlLexer(), formatter))))
Run Code Online (Sandbox Code Playgroud)

谢谢你,罗伯特