2012-08-10 2 views
0

XML 파일을 수정하기 위해 XSLT를 사용하는 것이 DOM과 같은 XML 파서를 사용하는 것보다 더 효율적이고 바람직한 방법이라고 읽었습니다. JDOM, SAX, JSoup 등. 그래서 XML 구문 분석기보다 XSLT가 더 효율적이고 선호되는 매개 변수를 알고 싶었습니다. (XSLT가보다 일반화되고 더 쉬운 솔루션을 제공합니까?) 감사합니다.효율성 비교 : XSLT와 XML을 XML에서 XML로 변환하기위한 구문 분석

예 : 나는 하나 개의 XML 파일을 한 경우 가 :

<node1> 
<node2> TEXT </node2> 
</node1> 

과 내가 같은 출력이 필요합니다 다음

<node1> 
<node2> TEXT </node2> 
<script src="xyz.js"></srcipt> 
</node> 

를이 원하는 출력을 얻을 수 있도록 하나 내가 XSLT를 작성할 수 또는 XML 파서 (DOM, SAX 등)를 사용하여 원하는 요소를 원하는 위치에 삽입하고 원하는 결과를 얻는 Java 프로그램을 작성할 수 있습니다. 그래서 저는 XSLT가 더 바람직하고 효과적이라고 생각합니다.

+1

XML 파서는 변환을 수행하지 않습니다. 따라서 XSLT 프로세서가 XML 파서보다 다소 효율적이라고 말할 수는 없습니다. 질문을 편집하여 의미있게 만드십시오. –

+0

@Dimtre 의견을 주셔서 감사합니다. 제 질문을 수정했습니다. 한번보세요. – RahulD

+0

@DimitreNovatchev 의견을 주셔서 감사합니다. 제 질문을 수정했습니다. 한번보세요. – RahulD

답변

4

은 비용 파싱 직렬화을 지배하고, 변환 로직은 XSLT 나 Java로 작성된 여부에 무관하다. (XSLT로 작성하면 작업이 적기 때문에).

변환이 복잡 해지면 똑똑한 자바 프로그래머는 XSLT 엔진보다 성능이 뛰어나지 만 일반적인 Java 프로그래머는 그렇지 못합니다. 좋아, 너 똑똑하다는 걸 알 잖아. 그러나 평균적으로, 당신은 아마 평균입니다.

6

효율성 .... 관점의 개념이다

좋은 XSLT 변환 문서가 정말 작은 수, 함께 넣어 경험 'XSLT 전문가'약간의 시간이 걸릴 것이다. '개발'관점에서 보면 매우 효율적입니다.

그러나 CPU주기 측면에서 보면 XSLT 옵션이 가장 효율적이지는 않습니다.

좋은 '직접적인'(DOM/JDOM/SAX/뭐든간에) 프로그래밍 프로그래밍은 XSLT보다 빠르며 더 빨라야 비 XML 기반 프로세스가 될 것입니다. ('sed'또는 'awk').

그럼, 나는 '기술 논문'의 결론에 도전 할 것입니다. 많은 경우 XSLT는 다른 솔루션에 비해 '바람직합니다'(전문가에게) 유지, 변경 등이 더 쉽기 때문에. 그러나 '효율성'에 대해서는 기술 문서에서 먼저 그 의미가 무엇인지 정의해야합니다.

요점은 XSLT가 일부 XML 모델 (SAX/DOM/JDOM/etc.) 위에 놓이기 때문에 원시 모델처럼 효율적이지는 않습니다. 그러면 모든 XML 모델은 비효율적입니다. , 그리고 만약 당신이 그 레이어도 없애 버려.

롤프 많은 작은 변형을

+0

답변 해 주셔서 감사합니다 (+1). 이 모델에서는 파서 만 사용했지만 향후 작업에서는 '더 효율적이고 바람직한 XSLT 방법 사용'을 언급했습니다. – RahulD

+2

분석에서 한 가지 빠진 점은 XSLT 엔진이 XSLT 처리에 최적화 된 XML 트리 표현을 사용한다는 것입니다.이 트리 표현은 범용 DOM보다 훨씬 효율적입니다.예를 들어, 트리가 읽기 전용이기 때문에 노드를 문서 순서로 정렬하는 것이 매우 빠를 수 있습니다. 그래서 네임 스페이스를 처리 할 수 ​​있습니다. –