次のコードの変数での繰り返し一致の概念を理解するだけです
<xsl:param name="privileges" as="node()" select="doc('privileges.xml')"/>
<xsl:variable name="codeps" select="$privileges//privilege[matches(., ':[0-9]+$')]/substring-after(., ':')"/>
previleges.xml には次のコーディングがあります。
<privileges>
<privilege>Access my notices</privilege>
<privilege>Access draft notices</privilege>
<privilege>Place notice</privilege>
<privilege>Access published notices</privilege>
<privilege>Place notice of type:2903</privilege>
<privilege>Place notice of type:2413</privilege>
<privilege>Place notice of type:2803</privilege>
<privilege>Access pending notices</privilege>
<privilege>Access my account</privilege>
<privilege>Place legacy notice</privilege>
<privilege>Access my searches</privilege>
<privilege>Place notice of type:1101</privilege>
<privilege>Place notice of type:2404</privilege>
<privilege>Place notice of type:2402</privilege>
<privilege>Place notice of type:2501</privilege>
<privilege>Place notice of type:2505</privilege>
<privilege>Place notice of type:9900</privilege>
</privileges>
ここでは、以下の条件で、1つずつマッチングしています。
<xsl:if test="//*[@code = $codeps]">
私の疑問は、for-eachを使用せずに1つずつまたは各値をどのように照合するかです。これを使用しましたが、うまく機能しますが、まだ理解できません。$codeps の値を出力すると、一致が実行されているときに 2903 2413 2803 などの累積値が出力され、正確に一致します。
親切に理解するのを手伝ってくださいHOW
?