2016-10-17 35 views
0

我正在使用Jupyter笔记本(在Python 2.7上的IPython)。Jupyter笔记本输出单元格语法突出

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

print dom.toprettyxml(indent=' ') 

但它格式化为输出单元格明文。

我想用语法突出显示它。可能吗?

我遇到过使用Markdown,Latex和其他几个IPython.display,但没有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)))) 
+0

您可以使用[Pygments来做](http://pygments.org /)库来突出显示它。从pygments获取HTML输出,然后使用'IPython.display.HTML()'将其显示为HTML。 –

回答

1

正确标记的代码作为答案。

感谢反馈,我能够做任务用下面的代码:

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)))) 

谢谢 罗伯特

相关问题