2009-09-30 5 views
0

기본적으로 fileA.xml을 사용하여 파일의 완전히 다른 부분에서 노드를 가져 와서 fileB.xml에 새 트리를 작성합니다. 상대 경로는 조금 혼란 스럽습니다. 3 번 노드를 중첩하면 이제는 완전히 다른 분기에서 4 번 중첩 된 다른 노드를 추가해야하므로 전역 xpath가 필요하기 시작합니다.XPath/XSLT 최적화?

질문은 어떤 것이 더 효과적입니까? 상대 경로 또는 전역 경로?


<node1a> <node2a> <node3a/> <node3a/> <node3a/> </node2a> <node2b> <node3b> <node4b/> </node3b> </node2b> </node1a>

<!-- the above is rearranged to this --> <node1a> <node4b/> <node3a/> <node3a/> <node3a/> </node1a>

FileA.xml

 
1) node3 (when I'm in node1/node2) 
2) /node1/node2/node3 

는 항상 동일한 구조를 가질 것이며, XSLT 템플릿의 재사용은 문제가되지 않습니다. 그럼 글로벌 경로 만 사용해야합니까?

그렇지 않으면 너무 많은 컨텍스트를 추적하는 것 같습니다.

고마워, 내가 지금 그것에 대해 걱정하지 마십시오 말할 것

답변

1

나는 전문가는 아니지만 * 또는 // 연산자를 사용하지 않는 상대 경로와 전역 경로는 동일한 성능을 가져야합니다.

1

랜스. XML 파일이 충분히 커지면 전체 문서를 메모리에로드해야하므로 XPath를 사용하지 않을 것입니다.

3

간단한 구현을 위해 요소 이름과 관련된 모든 단계는 문자열 조회입니다. 그래서 더 적을수록 좋습니다. 그렇지 않으면 대단히 구현 의존적입니다. 또한 상대 경로는 더 관용적입니다.