加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala中读取和输出XML处理指令?

发布时间:2020-12-16 08:46:44 所属栏目:安全 来源:网络整理
导读:我正在编写一个小型 Scala应用程序,它执行以下操作: 1)读取XML / XHTML文件 2)做一些小的预处理 3)如果需要,使用XSLT样式表对其进行转换. 4)稍微后处理. 5)将其保存为XHTML. 我的XML文件将从以下内容开始: ?xml version="1.0" encoding="UTF-8"??xml-style
我正在编写一个小型 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-stylesheet,然后将其传递给

scala.xml.XML.load(scala.xml.Source.fromString(text))

必须有更好的方法来做到这一点.我需要知道我应该在Scala中使用哪个样式表,因为如果需要,Scala必须调用XSLT处理器.

此外,在我完成处理后,我使用它们保存它们

scala.xml.Utility.trim(transformed).buildString(true)

但是生成的文档不包含XML声明,也不包含HTML DOCTYPE.我也想要那些.

我知道这在技术上是两个问题,但那些基本上都是同一问题的两端,我怀疑第二个问题的解决方案与第一个问题的解决方案有关.

解决方法

基本上,Scala的XML不足以满足您的需求.即使使用生成Document的xml.parsing.XhtmlParser,您也只能获得版本,编码和dtd.您可以创建一个构造解析器,一个事件解析器或使用自定义SAXParser覆盖XML来获取XSLT内容,但是您仍然无法使用Scala XML表示该信息,并且您仍然需要手动编写保存代码追加那些东西.

所以我建议你继续使用一个处理XSLT的Java库.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读