를 사용하여 내가이 final.xml 여기필터 트리 XSLT
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="b.xsl"?>
<childrens>
<child_1 entity_id="1" value="Root Catalog" parent_id="0">
<child_2 entity_id="2" value="Navigate" parent_id="1">
<child_4 entity_id="4" value="Activities" parent_id="2">
<child_10066 entity_id="10066" value="Physical1" parent_id="4">
<child_10067 entity_id="10067" value="Cricket" parent_id="10066">
<child_10068 entity_id="10068" value="One Day" parent_id="10067"/>
</child_10067>
</child_10066>
<child_10069 entity_id="10069" value="Test2" parent_id="4"/>
<child_10070 entity_id="10070" value="Test3" parent_id="4"/>
<child_10071 entity_id="10071" value="Test4" parent_id="4"/>
<child_10072 entity_id="10072" value="Test5" parent_id="4"/>
<child_5 entity_id="5" value="Physical" parent_id="4"/>
</child_4>
<child_4331 entity_id="4331" value="Region" parent_id="2">
.
.
.
.
</child_4331>
</child_2>
</child_1>
</childrens>
같은 트리 구조의 XML 파일이 나의 XSLT 코드
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="*" mode="item">
<li>
<xsl:value-of select="@value"/>
<xsl:apply-templates select="current()[*]"/>
</li>
</xsl:template>
<xsl:template match="*/*/*">
<ul>
<xsl:apply-templates select="*[1] | node()[current()/ancestor::*[3]]" mode="item"/>
<xsl:if test="local-name(child::*) = 'child_4'"><div id="Activity"></div></xsl:if>
</ul>
</xsl:template>
</xsl:stylesheet>
하고 난의 ID를 포함하는 다른 XML 파일이 리프 노드 은 내가 (부모 ID로) filter.xml
파일에 있습니다 만 노드
을 표시 할과 filter.xml는
입니다여기 dist_activity는 기본 xml 파일의 entity_id 인 리프 노드의 ID를 포함하므로이 2 xml 파일을 사용하여 출력하고 싶습니다. 현재 난 단지 주 XML 파일을 여기하지 filter.xml
파일을 사용하고하는 것은 내가 어느 날 (10068), Test2를위한
여기
이 filter.xml에 모두 파일을 사용하여 원하는 내 전류 출력 및 넣어 밖으로 (10069), test3 (10070), Physical (5) 그래서 내 나무에있는 사람들 만 필요합니다.
xslt
코드에서 변경해야 할 사항은 무엇입니까 ???
을' –
내가 코드를 가질 수 filter.xml'하세요? –
당신이 실제로 원하는 것입니까? 처음 세 항목 만 원한다면'select = "node() [position() <4]"'를 사용하지 않을까요? – apmasell