我有一个包含XML的String,没有换行符或缩进。我想将它变成一个具有良好格式和语法高亮的字符串。我不想使用Web框架或Web浏览器来做这么简单的事情。我该怎么做?
| unformattedXml formattedXml |
unformattedXml := '<tag><nested>hello</nested></tag>'.
formattedXml := UnknownClass new format: unformattedXml.
注意:我的输入是一个字符串。我的输出是一个字符串。
答案 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.com,ss3.gemstone.com和smalltalkhub.com上的XML包。必然会有适合漂亮印刷的东西。
语法突出显示是一个不同的故事,因为它取决于您要打印的媒体。你的目标是什么?你说你不想使用网络浏览器,所以我只能假设你想要在Smalltalk环境中突出语法?如果是这样,您可能不得不诉诸PetitParser并可能编写自己的解析器(您可能不想这样做)。也许你可以给我们一些关于你想要完成什么的更多细节?