0

こんにちは、要素 if (station>='BBC'....tried -xsl:if test=("@station ='BBC'")> のコンテンツを表示する関数を思いつくのを手伝ってほしいです役に立ちません。

<chanels>
      <public>
       <programme>
         <station>BBC</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>london</studio>
         <drama>british Got talent</drama>
       </programme>
      <programme>
         <station>CNN</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>new York</studio>
         <drama>american circus</drama>
       </programme>
       <programme>
         <station>FOX8</station>
         <sports>soccer</sports>
         <news>local</news>
         <studio>Florida</studio>
         <drama>ET</drama>
       </programme>
    </public>
    </chanels>

すでに hibernate を使用している場合は、id を使用して作成する方法を制御させて@SequenceGeneratorください@GeneratedValue。それはより透過的であり、Hibernate はそれ自体のために ID を予約できるので、手動で、またはトリガーから行うよりも効率的かもしれません。

4

2 に答える 2

0

@Reinder が彼の回答で指摘したように、@要素ではなく属性を参照するために使用されます。たとえば、次の XSL スタイルシートを使用して、 に等しい<programme />要素だけを含む入力の正確なコピーを生成します。<station />'BBC'

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="@*|node()">
        <xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
    </xsl:template>

    <xsl:template match="programme">
        <xsl:if test="./station = 'BBC'">
            <xsl:copy><xsl:apply-templates select="@*|node()" /></xsl:copy>
        </xsl:if>
    </xsl:template>
</xsl:transform>
于 2012-10-17T07:34:59.763 に答える
0

「@」は、ノードの属性を参照するためにのみ使用されます。次のようなものを使用する必要があります。

<xsl:if test="station='BBC'">
...
</xsl:if>
于 2012-10-17T07:26:22.537 に答える