如何从Smalltalk打印XML?

时间:2013-07-09 00:38:01

标签: xml smalltalk pretty-print

我有一个包含XML的String,没有换行符或缩进。我想将它变成一个具有良好格式和语法高亮的字符串。我不想使用Web框架或Web浏览器来做这么简单的事情。我该怎么做?

| unformattedXml formattedXml |
unformattedXml := '<tag><nested>hello</nested></tag>'.
formattedXml := UnknownClass new format: unformattedXml.

注意:我的输入是一个字符串。我的输出是一个字符串。

2 个答案:

答案 0 :(得分:1)

要打印您的xml字符串,您可以使用以下

xmlString := '<a><b><c></c></b></a>'.
xml := XMLDOMParser parseDocumentFrom: xmlString.
^ String streamContents: [:stream|
    xml prettyPrintOn: stream ]

那应该给你

<a>
    <b>
        <c />
    </b>
</a>

我不知道什么是语法高亮的最佳选择

答案 1 :(得分:0)

查看squeaksource.comss3.gemstone.comsmalltalkhub.com上的XML包。必然会有适合漂亮印刷的东西。

语法突出显示是一个不同的故事,因为它取决于您要打印的媒体。你的目标是什么?你说你不想使用网络浏览器,所以我只能假设你想要在Smalltalk环境中突出语法?如果是这样,您可能不得不诉诸PetitParser并可能编写自己的解析器(您可能不想这样做)。也许你可以给我们一些关于你想要完成什么的更多细节?