【发布时间】:2011-05-15 03:25:57
【问题描述】:
我正在编写一个小型 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 处理指令。我求助于将其读取为字符串,进行字符串操作以找到 xml-stylesheet,然后将其传递给
scala.xml.XML.load(scala.xml.Source.fromString(text))
必须有更好的方法来做到这一点。我需要知道应该在在 Scala 中使用哪个样式表,因为如果需要,Scala 必须调用 XSLT 处理器。
另外,在我处理完它们后,我会使用
scala.xml.Utility.trim(transformed).buildString(true)
但生成的文档不包含 XML 声明,也不包含 HTML DOCTYPE。我也想拥有这些。
我知道这在技术上是两个问题,但基本上是同一个问题的两端,我怀疑第二个问题的解决方案与第一个问题的解决方案有关。
【问题讨论】: