2011-09-05 4 views
10

스칼라에는 고유 한 XML 라이브러리가 있으며 기본 제공 기능을 제공합니다. 그러나이 언어의 주요 기능 중 하나는 Java 호환성으로 선전 된 것입니다. 나는 자바 노드 객체를 스칼라 객체를 사용하는 것과 비슷한 방식으로 사용할 수 있기를 기대한다.Java xml 객체를 Scala xml 객체로 신속하게 변환 할 수 있습니까?

내 질문은 :

  • 스칼라 사람에 자바 XML 용기를 변환하는 가장 빠른 방법은 무엇입니까?
  • 당신에게 도움이되는 좋은 암시가 있습니까?
  • 예를 들어 스칼라 API에서 java 요소를 사용하는 생성자가 있습니까?

답변

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)) 
} 

이 아니다 String으로 변환 된 다음 다시 XML 객체로 변환 될 때 실제로 큰 xml 객체에 대해서는 매우 유용하지만 중소 규모 객체에 대해서는 작동합니다.

1

스칼라 XML의 경우는 정확하지 않지만 Scales Xml에 대한 해결책이 있습니다.

정상적인 'Sun'JAXP impl (다른 모든 공급자가 이것을 허용하지는 않음) 하에서 완전한 TrAX 지원을 제공하고 StAX를 사용하여 변환을 허용합니다. 즉, 먼저 문자열로 직렬화하지 않고 Scales Xml과 JAXP (또는 TrAX를 지원하는 다른 모든 모델)간에 변환 할 수 있습니다.

그러나 세 가지 스칼라 XML 대안 모두의 불변성을 고려할 때 실제로 직접 지원할 수없는 직접적인 DOM 개체에 대해서는 많은 기존 인프라가 존재합니다.

+0

어떻게하면 되나요? 방금 주제에 대한 질문을 올렸습니다. http://stackoverflow.com/questions/19044333/how-to-convert-scala-scales-xml-to-dom-sax – underspecified

관련 문제