1

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

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

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

4

2 回答 2

1

要漂亮地打印您的 xml 字符串,您可以使用以下命令

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

那应该给你

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

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

于 2013-07-09T14:59:32.393 回答
0

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

语法突出显示是另一回事,因为它取决于您要打印的介质。你的目标是什么?你说你不想使用网络浏览器,所以我只能假设你想要在 Smalltalk 环境中突出显示语法?如果是这样,您可能不得不求助于PetitParser并可能编写自己的解析器(您可能不想这样做)。也许您可以向我们提供有关您要完成的工作的更多详细信息?

于 2013-07-09T05:28:12.143 回答