Is there any Objective-c class or ‘framework with utility classes’ that can tidy XML received in a block into readable indented XML.
BEFORE
<Modules><Module><Description>Equities</Description><ModuleId>4</ModuleId></Module><Module><Description>Fleets</Description><ModuleId>2</ModuleId></Module><Module><Description>Futures</Description><ModuleId>5</ModuleId></Module><Module><Description>News</Description><ModuleId>1</ModuleId></Module><Module><Description>Podcasts</Description><ModuleId>7</ModuleId></Module><Module><Description>Time series</Description><ModuleId>3</ModuleId></Module><Module><Description>Clients</Description><ModuleId>13</ModuleId></Module><Module><Description>Seanet</Description><ModuleId>10</ModuleId></Module><Module><Description>S and P</Description><ModuleId>6</ModuleId></Module><Module><Description>Drycargo</Description><ModuleId>9</ModuleId></Module><Module><Description>Tankers</Description><ModuleId>8</ModuleId></Module><Module><Description>MarketLine</Description><ModuleId>11</ModuleId></Module></Modules>
AFTER
…..
<Modules>
<Module>
<Description>Equities</Description>
<ModuleId>4</ModuleId>
</Module>
<Module>
<Description>Fleets</Description>
<ModuleId>2</ModuleId>
</Module>
...
</Modules>
cheers
You could use
NSXMLParserto parse the document and format it yourself. In your NSXMLParserDelegate keep an ivarlevelthat indicates the current level or indention needed. Every time the parser parses a new start token, increase this by one and when it encounters an end token decrease it by one. Then, all you have to do is have aNSMutableStringand append the parsed nodes with the right amount of spaces in front of them.