0

XML に string を含む type 属性を持つノードが存在するかどうかを確認したいと思いますtype_attachment_

確認方法は正しいのでしょうか?

<xsl:if test="count(*[contains(@Type, 'type_attachment_')]) &gt; 0">
   something
</xsl:if>

このノードをどのようにネストできるかわかりません。たとえば、次のように簡単にできます。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl"?>

<hello-world>
 <greeter>
  <dsdsds>An XSLT Programmer
   <greeting type = 'type_attachment_'>Hello, World!
   </greeting>
  </dsdsds>
 </greeter>
</hello-world>

このノードを別の他の要素にネストして含めることもできます。

4

2 に答える 2

4

既存のノードに一致する式は真です。どのノードとも一致しない式は偽です。

したがって、返されるノードのセットを数える必要はありません。何かが一致するかどうかをテストするだけです。

<xsl:if test="*[contains(@Type, 'type_attachment')]">
   something
</xsl:if>
于 2013-05-13T12:39:52.347 に答える
1

例を見つけてください:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output indent="yes"/>
  <xsl:param name="filt">
    <filters>
      <ritem type="type_attachment_" relateditemnumber="8901037"/>
      <ritem relateditemnumber="8901038"/>
      <ritem type="type_attachment_" relateditemnumber="8901039"/>
      <ritem relateditemnumber="8901040"/>
    </filters>
  </xsl:param>

  <xsl:template match="/">
    <xsl:for-each select="$filt/filters/ritem[@type='type_attachment_']">
      <xsl:copy-of select="."/>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

出力:

<ritem type="type_attachment_" relateditemnumber="8901037"/>
<ritem type="type_attachment_" relateditemnumber="8901039"/>
于 2013-05-13T12:39:50.203 に答える