1
내 데이터를 수정하는 데 너무 오래 걸리므로 xsl을 최적화하려고합니다. 나는 제품에 장소에 이러한 groupIds을 얻고 싶은요소 내용이있는 XSTL 필터
<catalog>
<product>
<prodid>12345</prodid>
.....
</proudct>
<product_group_map>
<prodid>12345</prodid>
<groupid>2435</groupid>
</product_group_map>
</catalog>
: 같은
내 sourcedata는 (I 수정할 수없는) 보인다. 내가 지금까지했던 것은 다음과 같습니다
<xsl:variable name="id"><xsl:value-of select="prodid"/></xsl:variable>
<xsl:variable name="grId">
<xsl:for-each select="../product_group_map">
<xsl:if test="prodid = $id">
<xsl:value-of select="groupid"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
<!-- the actual print of the values -->
<xsl:value-of select="concat($id, $separator, $grId)"/>
그래서 프로세스가 O^2를 실행합니다. 7 백만 가지 제품에 대해서는 그렇지 않습니다. 원하는 그룹 ID를 어떻게 든 매칭시킬 수있는 방법이 있습니까? 내가 같은 생각 다음 XML이
<catalog>
<product>
<prodid>12345</prodid>
.....
</proudct>
<product_group_map prodId="12345">
<groupid>2435</groupid>
</product_group_map>
</catalog>
같이한다면 내가 선택과 같이 사용할 수있다 : 첫째
<!--allready in product with the path -->
<xsl:variable name="id"><xsl:value-of select="prodid"/></xsl:variable>
<xsl:variable name="groupid"><xsl:value-of select="../product_group_map[@prodid = $prodId]/groupid"/></xsl:variable>