Scala: создавать XML программно с помощью обратных вызовов? - PullRequest
0 голосов
/ 15 ноября 2011

У меня есть библиотека, которая проходит через древовидную структуру, используя обратные вызовы в класс. Упрощенный вариант:

class CallBack {
    openGroup(name:String)
    closeGroup(name:String)
    item(name:String)
}

openGroup, таким образом, шагает на один шаг в дерево, closeGroup выходит, и элемент является листом. Я хотел бы создать простую структуру XML как я бегу по коду. Наивным решением было бы просто сделать что-то вроде следующего псевдокода:

class CallBack {
    var xml:String = ""
    openGroup(name:String)  = { xml += "<ol label=" + name + ">"}
    closeGroup(name:String) = { xml += "</ol>" }
    item(name:String)       = { xml += "<li name=.... />" }
}

Полагаю, более удачным решением было бы создать это, используя Node: s, Группы и т. Д., или другой соответствующий метод, а затем создать XML.

Есть ли у вас какие-либо идеи, как создать xml из вышеперечисленного достойным образом?

1 Ответ

1 голос
/ 15 ноября 2011

Если вы используете JATL , это будет выглядеть примерно так:

class CallBack(writer: Writer) {
    private val html = new Html(writer)
    def openGroup(name:String) = html.ol.label(name)
    def closeGroup(name:String) = html.end
    def item(name:String) = html.li.label(name).end
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...