2013-01-23 3 views
0

xslt를 배우고 있습니다. 좀 XSLT 코드를 이해하려고 노력하고 있지만, 다음 코드 줄이 무엇을 의미하는지지고 있지 않다 : 나는 변수를 이해할 수 다음 코드 줄은 xslt에서 무엇을 의미합니까?

<xsl:variable name="Product" select="document('ProductList.xml')/node()[1]/node()[2]/node()[2]/node()[2]"/> 

은 "$ 제품을"입니다,하지만 난의 가치를 이해 드릴 수 없습니다 select 특성, 문서 함수 뒤에 '/'와 nodes() []. 나는 C# 및 java 코딩 지식이 있고이 구문 유형에 익숙하지 않습니다. 선택의 가치에서 이들이 무엇을 의미하는지 알고 싶습니다.

+0

은하지 좋은 방법은 인덱스 노드의 값을 얻기 위해, 우리에게 productList.xml 약간의보기 아니, 노드 변경의 인덱스 경우 - 그래서 UR 출력을한다.. –

답변

5

select 속성은 변수의 값이 XPath 표현식에 의해 결정되어야한다는 표시입니다.

document('ProductList.xml')은 XPath 선택을 수행하기 위해 "ProductList.xml"이름으로 파일을로드합니다.

/node()[1]/node()[2]/node()[2]/node()[2] 부분은 첫 번째 요소의 두 번째 자식의 두 번째 자식의 두 번째 자식을 선택해야 함을 의미합니다. 즉, 경우 ProductList.xml이처럼 보였다 :

의 XPath가의 두 번째 자식 인 <e>의 두 번째 아이가있다 <g>의 두 번째 아이가있는 <i> 노드를 선택한다고 그런
<a>    <!-- /node()[1] --> 
    <b>   <!-- /node()[1]/node()[1] --> 
    <c />  <!-- /node()[1]/node()[1]/node()[1] --> 
    <d />  <!-- /node()[1]/node()[1] --> 
    </b> 
    <e>   <!-- /node()[1]/node()[2] --> 
    <f />  <!-- /node()[1]/node()[2]/node()[1] --> 
    <g>   <!-- /node()[1]/node()[2]/node()[2] --> 
     <h /> <!-- /node()[1]/node()[2]/node()[2]/node()[1] --> 
     <i /> <!-- /node()[1]/node()[2]/node()[2]/node()[2] --> 
    </g> 
    </e> 
</a> 

<a>은 첫 번째 (및 유일한) 루트 요소입니다. 거꾸로 읽기

+0

그것은 많은 도움이되었습니다, 감사합니다. –

0

: -

node()[2],  node()[2],  node()[2],  node()[1],  document('ProductList.xml')   
second child of, second child of, second child of, first child of, ProductList.xml document 
관련 문제