1
나는 다음과 같은 한 XML그룹 인접 구문 조언 (목적을 위해 간체)
<content>
<p1>blabla</p1>
<p2>blabla</p2>
<p2>blabla</p2>
<p1>blabla</p1>
<p3>blabla</p3>
<p1>blabla</p1>
<p2>blabla</p2>
<p2>blabla</p2>
<p1>blabla</p1>
<p3>blabla</p3>
<p2>blabla</p2>
</content>
이 필요하고 나는 모든 P1 요소와 P2 요소지만, 후자는 이전 형제가있는 경우에만 그룹에 싶습니다 p1 요소. 나는 XSLT 다음 사용
:
<xsl:for-each-group select="*" group-adjacent="self::p1 or (self::p2 and preceding-sibling::p1[1])">
<xsl:choose>
<xsl:when test="current-grouping-key()">
<ol_coll>
<xsl:apply-templates select="current-group()"/>
</ol_coll>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="current-group()"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each-group>
하지만 난 그게 처음 이전 요소에 있지만 전체 트리에 보이지 않는 나의 구문에 뭔가가 내려다 보이는거야. 그래서 반환
<content>
<ol_coll>
<p1>blabla</p1>
<p2>blabla</p2>
<p2>blabla</p2>
<p1>blabla</p1>
</ol_coll>
<p3>blabla</p3>
<ol_coll>
<p1>blabla</p1>
<p2>blabla</p2>
<p2>blabla</p2>
<p1>blabla</p1>
</ol_coll>
<p3>blabla</p3>
<ol_coll>
<p2>blabla</p2>
</ol_coll>
</content>
다음하지만 내가 기대했다하면 다음과 같다 얻을 : 내 오류로 나를 가리킬 수 있습니다
<content>
<ol_coll>
<p1>blabla</p1>
<p2>blabla</p2>
</ol_coll>
<p2>blabla</p2>
<p1>blabla</p1>
<p3>blabla</p3>
<ol_coll>
<p1>blabla</p1>
<p2>blabla</p2>
</ol_coll>
<p2>blabla</p2>
<p1>blabla</p1>
<p3>blabla</p3>
<p2>blabla</p2>
</content>
누구? 감사 !