【问题标题】:Is there a quick way to convert Java xml objects to Scala xml objects?有没有一种将 Java xml 对象转换为 Scala xml 对象的快速方法?
【发布时间】:2011-11-06 20:26:54
【问题描述】:

Scala 有自己的 XML 库,并为其提供内置支持。但是,该语言的主要特征之一是被吹捧为 Java 兼容性。我希望能够以与使用 scala 对象类似的方式使用 java Node 对象。

我的问题是:

  • 将 java xml 容器转换为 scala 容器的最快方法是什么?
  • 有什么好的隐式可以为你做事吗?
  • 在 Scala API 中,是否存在采用 java 元素的构造函数?

【问题讨论】:

    标签: java xml api scala


    【解决方案1】:

    所以,我已经挖掘了,这是我能找到的最好的:http://www.jdom.org/docs/apidocs/org/jdom/output/XMLOutputter.html

    最简单的使用方法是隐式:

    implicit def javaToScalaXML(jElem: org.jdom.Element): scala.xml.Element = {
        return XML.loadstring(XMLOuputter.outputString(jElem))
    }
    

    这对于非常大的 xml 对象来说不是很漂亮,因为它们会被转换为字符串,然后再转换为 XML 对象,但它适用于中小型对象。

    【讨论】:

      【解决方案2】:

      虽然不完全适用于 Scala XML,但有一个适用于 Scales Xml 的解决方案。

      它提供完整的 TrAX 支持,并且在正常的“Sun”JAXP impl 下(并非所有其他提供商都允许这样做),允许使用 StAX 进行转换。这意味着您可以在 Scales Xml 和 JAXP(或任何其他支持 TrAX 的模型)之间进行转换,而无需先序列化为字符串。

      然而,鉴于所有三个 Scala Xml 替代方案的不变性,有很多现有的基础设施用于直接 DOM 对象,这些基础设施并不是真正可以直接支持的。

      【讨论】:

      猜你喜欢
      • 2011-12-10
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多