如何使用Emacs将XML源代码显示为HTML?

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

标签。
<pre>..</pre> 

展示'<'和'>'的方法。

如何解决这个问题?

添加

从答案中可以得知,将'<'和'>'替换为&lt;&gt;是一种解决方法。我是Emacs用户,是否有Emacs工具/魔法可以自动完成?我的意思是,我可以使用搜索和替换,但我希望Emacs可以通过“选择区域” -> “M-x replace_xml”或类似方式自动完成。


1
为什么不能使用<pre>?请告诉我们更多关于你的限制。 - Jacob Mattison
你也想要“漂亮”的格式吗?不必提及,假设它会呈现出很棒的显示效果。 - Jakub
6个回答

5

您需要将<转义为&lt;,将&转义为&amp;。如果需要保持一致性,可以选择将>转义为&gt;

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


M-x sgml-quote 正是我所需要的。谢谢! - prosseek

2
你需要将 < 替换为 &lt;,将 > 替换为 &gt;。如何实现取决于所使用的服务器端语言。

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


1

如前所述,您需要转义XML。为了保证健壮性,我建议您也转义单引号和双引号。请注意,如果您的XML文档包含]]></pre>,则CDATA<pre>可能会导致问题。

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


0

正如其他人所指出的那样,您需要转义XML标记以在HTML中显示它。

看一下xmlverbatim样式表:它不仅可以做到这一点,还可以进行漂亮的打印和着色。

如果您在谷歌上搜索,会发现有几个类似格式化的样式表。


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

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!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接