2 つの主なケースを持つ csv ファイルがあります
ケース #1:
「姓、名、ID#」
ケース#2
「組織名、ID#」
キャリッジ リターンごとにファイルをドキュメント ノードに分割するトークン化関数を実行しています。
<xsl:template match="/">
<!-- tokenize on line endings -->
<xsl:for-each select="str:tokenize(.,' ')">
<document>
<xsl:apply-templates select="." mode="new-document" />
</document>
</xsl:for-each>
</xsl:template>
だから私はこれを持っています:
<document>"Don Jackson,,19001"</document>
<document>"Frederick Guitars,,ed55555,,,O"</document>
<document>"Frederick Guitars,,ed11111,,,O"</document>
<document>"A WILLIAMS,JONES THOMPSON,141212"</document>
<document>"A RANJI,ALENA,741152"</document>
ここで、ドキュメント ノード内にコンテンツ ノードを作成する必要がありますが、コンテンツ ノードの名前はドキュメント ノードの構造によって異なります。基本的に、最初のコンマの後のテキストが null の場合 (「,,」を取得することを意味します)、最初のコンテンツ ノードの名前は「Organization」になります。それ以外の場合、最初のコンテンツ ノードは「surname」と呼ばれ、2 番目のコンテンツ ノードの名前は「givenName」になります。関係なく、3 番目のノードは ID_num になります。
ここでは xsl:choose が機能するはずですが、実装方法がわかりません。誰かアドバイスをいただけますか?
ありがとう