私はすでにスタックオーバーフローで多くのことを試しましたが、私はまだ同じ問題に直面しています。マルチラインアイテムのXSLTが必要
問題を説明し、達成するために必要なことを教えてください。
<authorizationGroups>
<authorizationGroup> <!-- can be multiple -->
<name>OGroup 1</name>
<application> <!-- can be multiple -->
<uid>646</uid>
<applicationFunctions> <!-- can be multiple -->
<name>auth function 11</name>
<name>auth function 12</name>
</applicationFunctions>
</application>
<role>5000682864</role>
<role>5000685391</role>
</authorizationGroup>
<authorizationGroup> <!-- can be multiple -->
<name>OGroup 8</name>
<application> <!-- can be multiple -->
<uid>646</uid>
<applicationFunctions> <!-- can be multiple -->
<name>auth function 13</name>
<name>auth function 14</name>
</applicationFunctions>
</application>
<role>5000683374</role>
<role>5000685391</role>
</authorizationGroup>
が、私はこのような何かを取得する必要があります:このために私は次のXMLを持って
<resource-types>
<resource-types>
<resource-type>
<name>OGroup 1</name>
<actions>
auth function 11,
auth function 12
</actions>
</resource-type>
<resource-type>
<name>OGroup 8</name>
<actions>
auth function 13,
auth function 14
</actions>
</resource-type>
</resource-types>
私の問題は、私はいつもXSLT Iを使用する場合すべての "auth functions xx"が1つに収まるようになります。
<resource-types>
<xsl:call-template name="resource_types"/>
</resource-types>
<xsl:template name="resource_types">
<resource-types>
<xsl:for-each select="/authorizationGroups/authorizationGroup/name">
<resource-type>
<name>
<xsl:value-of select="text()"/>
</name>
<actions>
<xsl:for-each select="/authorizationGroups/authorizationGroup/application/applicationFunctions">
<xsl:value-of select=".//text()"/>
,
</xsl:for-each>
</actions>
</resource-type>
</xsl:for-each>
</resource-types>
</xsl:template>
今、私は一度にすべての「認証機能XX」を受信:
私の現在のコードスニペットは、この(この部分よりは明らかに存在している)のように見えます。 XSLTについての私の理解は限られているので、私の主な質問は、私が入っているXML文書の部分への検索をどのように制限することができるかということです。
これは非常に簡単な操作だと思っていましたが、ネットとスタックのオーバーフローで私は答えを思い付いていない。
銅 アンドレアス
ブリリアントを受ける16 \t \t \t \t、 \t \t \t認証機能。どうもありがとうございました! – user1292584