2010-05-12 3 views
1

하나의 XSLT로 두 XML을 일치시키는 트릭이 있습니까? 전달 된 매개 변수에 XSLT를 적용 할 수있는 방법을 의미합니다.XSLT에서 하나 이상의 XML 문서를 처리하는 방법은 무엇입니까?

예를 들어 (내가 부족한 선언을 놓쳤습니다). XML1는 : XML을 변환 할 수 있습니다 :

<xsl:param name='items' /> 
<xsl:template match='Collection'> 
    <!-- some transformation here --> 
</xsl:template> 

XML2 : 매개 변수로 전달 된 XML 데이터 '항목'

<newData> 
    <Item>1</Item> 
    <Item>2</Item> 
    <Item>3</Item> 
</newData> 

<myData> 
    <Collection> 

    </Collection> 
</myData> 

XSLT 이전 XML에 적용해야 XSLT를 사용하는 XML2의 각 'Item'요소에 대해 XML1의 'Collection'노드에 노드 집합을 만들어야합니다. XML2가 디자인 타임에 정확하게 포함되어 있는지 알 수 없습니다. 런타임에 생성되므로 XSLT 안에 배치 할 수 없습니다. 스키마 만 알고 있습니다.

답변

1

(1). 대신 정적 XSLT를 사용하는 XSLT를 생성 할 수 :

원하는 출력 리드 xslt2 xml1으로 변환
을 xslt2에 이르게 xslt1 xml2으로 변환

(2). document() 함수를 사용하여 xml2를로드 할 수 있습니다. 이를 위해서는 xml2를 디스크에 저장하거나 uri로 액세스 할 수 있어야합니다.

 <xsl:copy-of select="document('xml2.xml')//newData" /> 
+0

두 번째 변형이 더 적합합니다. 감사합니다. –

1

읽기에 대한 표준 XSLT 기능 document()를 사용합니다.

관련 문제