2013-07-09 116 views
1

我有一個包含XML的字符串,沒有換行或縮進。我想把它變成一個字符串,帶有很好的格式和語法高亮。我不想用這樣一個簡單的東西來使用Web框架或Web瀏覽器。我該怎麼做呢?如何從Smalltalk漂亮地打印XML?

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

注意:我的輸入是一個字符串。我的輸出是一個字符串。

回答

0

查看squeaksource.com,ss3.gemstone.comsmalltalkhub.com上的XML包。肯定會有適合漂亮打印的東西。

語法突出顯示是一個不同的故事,因爲它取決於您想打印的介質。你的目標是什麼?你說你不想使用Web瀏覽器,所以我只能假設你想在Smalltalk環境中使用語法高亮顯示?如果是這樣,你可能不得不求助於PetitParser,並可能編寫你自己的解析器(你可能不想這麼做)。也許你可以給我們一些關於你想要完成的更多細節?

1

要漂亮打印XML字符串,你可以使用下面的

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

這應該給你

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

我不知道什麼是對語法高亮

最好的選擇