この本当に大きなXMLファイルには、実際に古い動物テストデータが含まれていますが、各行にはフィールドセットが含まれています。このファイルは、子のシーケンスを使用して実際のデータ間の関係を決定します。XSLT1子どもの可変量を持つ親からデータを確実に取得する方法
これらのフィールドを「最初のすべての最初のデータフィールド」の順に抽出し、次にすべての2番目のフィールド、3番目のフィールド、3番目のフィールドなどを抽出する必要があります。しかし、データフィールドの量は異なる行の石に設定されていませんが、同じ行では一貫しているようです。
説明するのは難しいですが、サンプルドキュメントを追加しました。最初のテーブルはソースで、2番目のテーブルは取得したい場所です。
私はノードの関係を保存するために以下のようなものを試しましたが、うまく動作しませんでした。 IDは、初心者レベルのxsltをわずかに過ぎていると言っていますが、現在のインフラストラクチャ要件のために、これをXSLT1で動作させる必要があります。
<xsl:template match="ROW">
<xsl:for-each select="./anamnese/DATA">
<xsl:variable name="depth">
<xsl:number/>
</xsl:variable>
<xsl:value-of select=".//anamnese/DATA[$depth]"/>
<xsl:value-of select=".//diagnose/DATA[$depth]"/>
<xsl:value-of select=".//fichenr./DATA[$depth]"/>
<xsl:value-of select=".//vis/DATA[$depth]"/>
<xsl:value-of select=".//dr._A/DATA[$depth]"/>
</xsl:for-each>
</xsl:template>
偽データを持つ開始テーブルの例。 DATAフィールドの信頼性にはどのような影響があるか注意してください。
<TABLE>
<ROW MODID="4" RECORDID="1801">
<anamnese>
<DATA>Gevonden in lat decubitus. Dag van huis weggeweest. Vanmorgen nog goed gegeten.</DATA>
</anamnese>
<diagnose>
<DATA/>
</diagnose>
<fichenr.>
<DATA>3607</DATA>
</fichenr.>
<vis>
<DATA>25/08/2017</DATA>
</vis>
<dr._A>
<DATA>EL</DATA>
</dr._A>
</ROW>
<ROW MODID="6" RECORDID="1802">
<anamnese>
<DATA>zeer agressief geworden op korte tijd</DATA>
<DATA/>
<DATA>detartratie nodig. Eerst cardiologisch onderzoek gehad bij Valerie Bavegems. Verslag volgt nog. Drinkt redelijk veel, 500 g afgevallen</DATA>
</anamnese>
<diagnose>
<DATA> euthanasie</DATA>
<DATA/>
<DATA/>
</diagnose>
<fichenr.>
<DATA>3989</DATA>
<DATA>3688</DATA>
<DATA>3608</DATA>
</fichenr.>
<vis>
<DATA>2/11/2017</DATA>
<DATA>6/09/2017</DATA>
<DATA>26/08/2017</DATA>
</vis>
<dr._A>
<DATA>EL</DATA>
<DATA>EL</DATA>
<DATA>MA</DATA>
</dr._A>
</ROW>
<ROW MODID="4" RECORDID="1803">
<anamnese/>
<diagnose/>
<fichenr./>
<vis/>
<dr._A/>
</ROW>
</TABLE>
所望の最終生成物。
<TABLE_B>
<ROW>
<recordId>1801</recordId>
<anamnese>Gevonden in lat decubitus. Vanmorgen nog goed gegeten.</anamnese>
<diagnose></diagnose>
<fichenr.>3607</fichenr.>
<vis>25/08/2017</vis>
<dr._A>EL</dr._A>
</ROW>
<ROW>
<recordId>1802</recordId>
<anamnese>zeer agressief geworden op korte tijd</anamnese>
<diagnose> euthanasie</diagnose>
<fichenr.>3989</fichenr.>
<vis>2/11/2017</vis>
<dr._A></dr._A>
</ROW>
<ROW>
<recordId>1802</recordId>
<anamnese/>
<diagnose></diagnose>
<fichenr.>3688</fichenr.>
<vis>6/09/2017</vis>
<dr._A>EL</dr._A>
</ROW>
<ROW>
<recordId>1802</recordId>
<anamnese>detartratie nodig. Eerst cardiologisch onderzoek gehad bij Valerie Bavegems. Verslag volgt nog. Drinkt redelijk veel, 500 g afgevallen</anamnese>
<diagnose/>
<fichenr.>3608</fichenr.>
<vis>26/08/2017</vis>
<dr._A>MA</dr._A>
</ROW>
<ROW>
<recordId>1803</recordId>
<anamnese/>
<diagnose/>
<fichenr./>
<vis/>
<dr._A/>
</ROW>
</TABLE_B>
私はおそらく行で可能なデータフィールドのMAX量を予測することができない場合でも、どのように私は確実に無傷で正しい関係を持つすべてのデータフィールドを抽出することができますか? (私は視覚的に266:pの行を見たことがあります)
ROW構造の作成に別のテンプレートを使用することができます。下記の回答をご覧ください。 –