Я пишу небольшое приложение Scala, которое выполняет следующее:
1) Чтение файлов XML / XHTML
2) Небольшая предварительная обработка
3) При необходимости преобразуйте его с помощью таблицы стилей XSLT.
4) Слегка обработайте его.
5) Сохраните его как XHTML.
Мои XML-файлы начинаются с чего-то вроде:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../xslt/default.xslt"?>
Если я читаю их с
scala.xml.XML.load(scala.xml.Source.fromFile(file))
Я получаю Elem, но я теряю инструкции по обработке XML. Я прибег к чтению его как String, выполняя манипуляции с String, чтобы найти таблицу стилей xml, а затем передавая ее
scala.xml.XML.load(scala.xml.Source.fromString(text))
Должен быть лучший способ сделать это. Мне нужно знать, какую таблицу стилей я должен использовать внутри Scala , потому что Scala должен вызывать процессор XSLT, если это необходимо.
Кроме того, после того, как я закончу их обработку, я сохраняю их, используя
scala.xml.Utility.trim(transformed).buildString(true)
но полученный документ не содержит ни декларации XML, ни HTML DOCTYPE. Я тоже хочу иметь их.
Я знаю, что это технически два вопроса, но это в основном оба конца одной и той же проблемы, и я подозреваю, что решение второй проблемы связано с решением первой.