如何使用带有Emacs的HTML显示XML源代码?

时间:2010-09-09 17:50:25

标签: html xml emacs escaping html-entities

在HTML文件中,我需要显示一些XML代码。问题是我无法使用

<pre>..</pre> 

显示'&lt;'和'&gt;'。

这个问题的解决方案是什么?

ADDED

从答案中,替换'&lt;'和'&gt;'到&lt;&gt;可以是一个解决方案。我是Emacs用户,是否有自动执行此操作的Emacs工具/魔法?我的意思是,我可以使用搜索和替换,但我希望Emacs可以通过“选择区域” - &gt;来实现。 'M-x replace_xml'或其他东西。

6 个答案:

答案 0 :(得分:5)

您需要将<作为&lt;&作为&amp;转义。 (可选)为了保持一致性,您可以将>转义为&gt;

要在Emacs中自动执行此操作,如果您处于HTML模式,则可以选择要转义的代码,然后运行 M-x sgml-quote

答案 1 :(得分:2)

您需要将<替换为&lt;,将>替换为&gt;。如何执行此操作取决于所讨论的服务器端语言。


更新:根据您的更新:这不再与编程有关。我认为http://superuser.com是提出软件相关问题的更好地方。

答案 2 :(得分:1)

如前所述,您需要转义XML。为了稳健,我也会逃避单引号和双引号。请注意,如果您的XML文档中包含CDATA<pre>,则]]></pre>可能会导致您遇到问题。

您可以通过直接字符串替换逃脱,但如果这样做,请确保在执行任何其他转义之前将&转义为&amp;

答案 3 :(得分:0)

正如其他人所说,你需要转义xml标记以在html中显示它。

看一下xmlverbatim样式表:这样做以及漂亮的打印和着色。

如果你google周围有几个样式表做类似的格式。

答案 4 :(得分:0)

使用没有Emacs的编程语言进行替换。

对于Python:

#Make a copy just in case.
#Open file.
#Read lines.
for line in lines:
    line = line.replace("<pre>", "&lt;").replace("</pre>", "&gt;")
#Output to file.
#Enjoy!

答案 5 :(得分:0)

  • 选择区域
  • 执行 M - % < RET &lt; RET