3

説明要素が存在するかどうかを確認する xslt コードを作成しようとしていますが、存在する場合は説明要素を表示しますが、存在しない場合は説明要素を表示しないでください。値はありませんが、サービスの説明がない場合に説明要素を表示しないようにコーディングするにはどうすればよいでしょうか。

  <?xml version="1.0" encoding="UTF-8"?>
  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


   <xsl:template match="Service">
     <xsl:element name="equipment">
      <xsl:if test="description !='' ">
          <xsl:value-of select="description" />
      </xsl:if>
      <xsl:if test="not(description)">
      </xsl:if>
     </xsl:element>
    </xsl:template>
   </xsl:stylesheet>

空の機器要素が返されているため、空ではない最初の2つの機器要素のみを返したいです。

4

3 に答える 3

1

更新されたソリューションは次のとおりです。チェックしてください

  <xsl:template match="Services">
    <xsl:for-each select="Service">
      <xsl:if test="count(description) &gt; 0 and description!=''">
        <equipment>
          <xsl:value-of select="description"/>
        </equipment>
      </xsl:if>
    </xsl:for-each>

  </xsl:template>


</xsl:stylesheet>
于 2012-10-24T10:54:16.433 に答える
0
     <xsl:template match="/">
  <xsl:apply-templates select="//Service"/>
  </xsl:template>
<xsl:template match="Service">
      <xsl:if test="description !='' ">
           <xsl:element name="equipment">
          <xsl:value-of select="description" />
     </xsl:element>
      </xsl:if>
    </xsl:template>

また

 <xsl:template match="/">
  <xsl:apply-templates select="//Service"/>
  </xsl:template>
   <xsl:template match="Service">
      <xsl:if test="child::description[text()]">
       <xsl:element name="equipment">
          <xsl:value-of select="description" />
            </xsl:element>
      </xsl:if>
    </xsl:template>
于 2012-10-24T11:54:44.583 に答える
0

これはうまくいきますか?

<?xml version="1.0" encoding="UTF-8"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- place <result /> as root to produce wellformed XML -->
<xsl:template match="/">
  <result><xsl:apply-templates /></result>
</xsl:template>

<!-- rewrite those <Service /> that have a <description /> -->
<xsl:template match="Service[./description]">
  <equipment><xsl:value-of select="description" /></equipment>
</xsl:template>

<!-- remove those who do not -->
<xsl:template match="Service[not(./description)]" />
</xsl:transform>
于 2012-10-24T11:22:02.413 に答える