次のサンプルでは、XMLのsubsidesを "Number" - ノード値にグループ化する必要があります。私は既にMuenchianメソッドをグループ化しようとしましたが、まだ完了できませんでした。 XSLTは1.0でなければなりません。 Numberノードごとにボックスを作成し、各値をグループ化する必要があります。問題はノード内の複数の値でも可能です。これらは別々に表示する必要があります。あなたが私にこのように助けてくれてありがとう!以下のように兄弟ノード値によるXSLTグループ化
<ROOT>
<PROC>
<DATA>
<Number>002</Number>
<Registration>27754</Registration>
<Country>Finland</Country>
<DATA>
<PROC>
<PROC>
<DATA>
<Number>003</Number>
<Registration>42852</Registration>
<Country>Sweden</Country>
<DATA>
<PROC>
<PROC>
<DATA>
<Number>003</Number>
<Registration>H/11/019|H/11/020|H/11/021</Registration>
<Country>Slovenia</Country>
<DATA>
<PROC>
<PROC>
<DATA>
<Number>002</Number>
<Registration>19481</Registration>
<Country>Denmark</Country>
<DATA>
<PROC>
<PROC>
<DATA>
<Number>004</Number>
<Registration>09-23</Registration>
<Country>Norway</Country>
<DATA>
<PROC>
</ROOT>
上記のコードが表示されなければならない:
<main>
<rbox>
<vNumber>002</vNumber>
<bbox>
<State>Finland</State>
<gbox>
<Registrations>
<Registration>27754</Registration>
</Registrations>
</gbox>
</bbox>
<bbox>
<State>Denmark</State>
<gbox>
<Registrations>
<Registration>19481</Registration>
</Registrations>
</gbox>
</bbox>
</rbox>
<rbox>
<vNumber>003</vNumber>
<bbox>
<State>Slovenia</State>
<gbox>
<Registrations>
<Registration>H/11/019</Registration>
</Registrations>
<Registrations>
<Registration>H/11/020</Registration>
</Registrations>
<Registrations>
<Registration>H/11/021</Registration>
</Registrations>
</gbox>
</bbox>
<bbox>
<State>Sweden</State>
<gbox>
<Registrations>
<Registration>42852</Registration>
</Registrations>
</gbox>
</bbox>
</rbox>
...
</main>
はあなたの高速応答のためにあなたに感謝します。ここまでは私のコードです。私は国と登録データを複数の値を作成せずに番号レコードにソートすることはできませんでした。私もキー "使用"でconcate値を試しましたが、これもうまくいきません。
<xsl:key name="country" match="ROOT/PROC/DATA" use="Country"/>
<xsl:key name="registration" match="ROOT/PROC/DATA" use="Registration"/>
<xsl:template match="/">
<main>
<xsl:for-each select="//Number[not(.=preceding::*)]">
<rbox>
<xsl:element name="vNumber">
<vNumber><xsl:value-of select="."/></vNumber>
<xsl:for-each select="//DATA[generate-id() = generate-id(key('country', Country)[1])]">
<bbox>
<State><xsl:value-of select="Country"/></State>
<gbox>
<xsl:for-each select="//DATA[generate-id() = generate-id(key('registration', Registration)[1])]">
<Registrations>
<Registration><xsl:value-of select="Registration"/></Registration>
</Registrations>
</xsl:for-each>
</gbox>
</bbox>
</xsl:for-each>
</xsl:element>
</rbox>
</xsl:for-each>
</main>
</xsl:template>
**** EDIT:あなたはDATA
要素によって、グループ化する場合は、グループ化問題--->に関するmichael.hor257kからの助けを借りた後、完全なスタイルシート憂慮製品
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"
xmlns:maa="http://www.oma.trp/maa/"
xmlns:rdm="http://www.oma.trp/dictionary/"
xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="ns-prefix" select="'xfa'"/>
<xsl:param name="ns-namespace" select="'http://www.xfa.org/schema/xfa-data/1.0/'"/>
<xsl:param name="ns-prefix1" select="'maa'"/>
<xsl:param name="ns-namespace1" select="'http://www.oma.trp/maa/'"/>
<xsl:param name="ns-prefix2" select="'rdm'"/>
<xsl:param name="ns-namespace2" select="'http://www.oma.trp/dictionary/'"/>
<xsl:param name="ns-prefix3" select="'xsi'"/>
<xsl:param name="ns-namespace3" select="'http://www.w3.org/2001/XMLSchemainstance'"/>
<xsl:param name="ns-prefix4" select="'schemaLocation'"/>
<xsl:param name="ns-namespace4" select="'http://www.oma.trp/maa/variations.xsd'"/>
<xsl:param name="ns-schema" select="'http://www.oma.trp/maa/variations.xsd'"/>
<xsl:variable name="vRdm" select="document('')/*/namespace::*[name()='rdm']"/>
<xsl:variable name="vXsi" select="document('')/*/namespace::*[name()='xsi']"/>
<xsl:variable name="vSchemaLocation" select="document('')/*/namespace::*[name()='schemaLocation']"/>
<xsl:template match="/">
<xsl:element name="{$ns-prefix}:data" namespace="{$ns-namespace}">
<xsl:element name="{$ns-prefix1}:eu_application_form" namespace="{$ns-namespace1}">
<xsl:copy-of select="$vRdm"/>
<xsl:copy-of select="$vXsi"/>
<xsl:copy-of select="$vSchemaLocation"/>
<xsl:attribute name="xsi:schemaLocation">
<xsl:value-of select="$ns-schema" />
</xsl:attribute>
<xsl:template match="/">
<maa:variations-form>
<xsl:element name="{$ns-prefix1}:applicationInformation">
<xsl:element name="{$ns-prefix1}:human">1</xsl:element>
<xsl:element name="{$ns-prefix1}:veterinary">0</xsl:element>
<xsl:element name="{$ns-prefix1}:nationalAuthInMRP">1</xsl:element>
<xsl:element name="{$ns-prefix1}:euAuthorisation">0</xsl:element>
<xsl:element name="{$ns-prefix1}:nationalAuthorisation">0</xsl:element>
<xsl:element name="{$ns-prefix1}:procedureNumbers">
<xsl:element name="{$ns-prefix1}:procedureNumber"></xsl:element>
</xsl:element>
<!--RMS country Loop start -->
<xsl:template match="/">
<xsl:element name="{$ns-prefix1}:referenceMemberState">
<xsl:choose>
<xsl:when test="ROOT/PROC/DATA/Procedure_Number[contains(text(),'DK')]">
<xsl:text>Denmark</xsl:text>
</xsl:when>
<xsl:when test="ROOT/PROC/DATA/Procedure_Number[contains(text(),'SI')]">
<xsl:text>Slovenia</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:element>
</xsl:template>
<!--RMS country Loop end -->
<!--CMS country Loop start -->
<xsl:template match="/">
<xsl:for-each select="//Country_Name[not(.=preceding::*)]">
<maa:concernedMemberStates>
<maa:concernedMemberState><xsl:value-of select="."/></maa:concernedMemberState>
</maa:concernedMemberStates>
</xsl:for-each>
</xsl:template>
<!--CMS country Loop end -->
<!--CONCERNED PRODUCTS -->
</xsl:element>
<xsl:template match="/">
<main>
<products>
<maa:formAndStrengthFlag>0</maa:formAndStrengthFlag>
<maa:footnote/>
<!--CONCERNED PRODUCTS -->
<xsl:key name="strength" match="ROOT/PROC/DATA" use="Speciality_Number"/>
<xsl:for-each select="ROOT/PROC/DATA[generate-id() = generate-id(key('strength', Speciality_Number)[1])]">
<redbox>
<variationNumber><xsl:value-of select="Speciality_Number"/></variationNumber>
<!-- for each member of the current group -->
<xsl:for-each select="key('strength', Speciality_Number)">
<blueBox>
<memberState><xsl:value-of select="Country_Name"/></memberState>
<greenBox>
<maNumbers>
<maNumber><xsl:value-of select="Registration_Number"/></maNumber>
</maNumbers>
</greenBox>
</blueBox>
</xsl:for-each>
</redbox>
</xsl:for-each>
</products>
</main>
</xsl:template>
</maa:variations-form>
</xsl:template>
</xsl:element>
<xsl:element name="FSTEMPLATE_">/Applications/eAFForms/1.20/Forms/Variation/Form/variation.xdp
</xsl:element>
<xsl:element name="FSFORMQUERY_">/Applications/eAFForms/1.20/Forms/Variation/Form/variation.xdp
</xsl:element>
<xsl:element name="FSTRANSFORMATIONID_">PDFForm</xsl:element>
<xsl:element name="FSTARGETURL_"/>
<xsl:element name="FSAWR_"/>
<xsl:element name="FSWR_"/>
<xsl:element name="FSCRURI_">repository://</xsl:element>
<xsl:element name="FSBASEURL_"/>
</xsl:element>
</xsl:template>
我々はそれを修正することができますので、代わりに最初からあなたのためのコードを記述することで、あなたの試みを投稿してください。 –