0

XMLドキュメントからビジネスの場所のコレクションを選択しようとしています。このコードは、1つのアイテムのみを選択することを除いて機能します。だから、私の質問:各場所で機能させるためにこのコードにできることはありますか?

    <xsl:template match="/InstitutionAlias/InstitutionAliasExternalReferenceCollection">
  <InstitutionExternalReferenceCollection>    
    <xsl:for-each select="InstitutionAliasExternalReference">
      <InstitutionExternalReference>
        <ExternalReferenceIdentifier>
          <xsl:value-of select="ExternalReferenceIdentifier"/>
        </ExternalReferenceIdentifier>
      </InstitutionExternalReference>
    </xsl:for-each>
  </InstitutionExternalReferenceCollection>
</xsl:template>

これは出力がどのように見えるべきかです

  <InstitutionExternalReferenceCollection>
- <InstitutionExternalReference>
  <ExternalReferenceIdentifier>Test1</ExternalReferenceIdentifier>
</InstitutionExternalReference>

- <InstitutionExternalReference>
  <ExternalReferenceIdentifier>Test2</ExternalReferenceIdentifier>
</InstitutionExternalReference>

これがサンプルのxmlファイルです。

  - <InstitutionAliasExternalReferenceCollection>
- <InstitutionAliasExternalReference>
  <ExternalReferenceIdentifier>Test1</ExternalReferenceIdentifier>
</InstitutionAliasExternalReference>
- <InstitutionAliasExternalReference>
  <ExternalReferenceIdentifier>Test2</ExternalReferenceIdentifier>
</InstitutionAliasExternalReference>

4

1 に答える 1

1

このようなもの?各ビジネスが1つの場所識別子しか持てないことを確信していれば(私にはわかりませんが)、それは凝縮される可能性がありますが、私は物事を別々のテンプレートに分けておくことにしました。

このXMLPlaygroundで実行できます(出力ソースを参照)。

    <!-- kick things off -->
    <xsl:template match="BusinessCollection">
        <BusinessCollection>
            <xsl:apply-templates select='Business' />
        </BusinessCollection>
    </xsl:template>

    <!-- each business -->
    <xsl:template match='Business'>
        <Business>
            <xsl:apply-templates select='LocationIdentifier' />
        </Business>
    </xsl:template>

    <!-- each location identifier -->
    <xsl:template match='LocationIdentifier'>
        <LocationIdentifier>
            <xsl:value-of select='.' />
        </LocationIdentifier>
    </xsl:template>

</xsl:stylesheet>

期待される出力にはDataノードが記載されていましたが、これらはXSLの試行には表示されなかったため、意図が何であったかはわかりません。

于 2012-07-26T17:52:54.293 に答える