1

私は次のようなxmlを持っています

<xml>
   <Text>
       <body>
       <para type="new"> This para needs to be suppress </para> 
       <para type="old"> This is an old para </para> 
       </body>     
  </Text>    
</xml>

以下のテンプレートを使用してできる body/para/@type='new' を抑制したい

<xsl:template match="para[@type='new']">
</xsl:template>

そうは言っても、body に para/@type='new' 以外の要素が含まれていない場合は body 要素全体を削除する必要があるという別の条件を実際に追加したいと思います。

そう

 <xml>
   <Text>
       <body>
       <para type="new"> This para needs to be suppress </para> 
       </body>     
  </Text>    
</xml>

戻るべき

<xml>
   <Text>
   </Text>    
</xml>

<xml>
    <Text>
       <body>
          <para type="new"> This para needs to be suppress </para> 
          <para type="old"> This is an old para </para> 
       </body>     
    </Text>    
</xml>

戻るべき

<xml>
   <Text>
       <body>
       <para type="old"> This is an old para </para> 
       </body>     
  </Text>    
</xml>

それを行う方法のヘルプまたはヒント...

4

2 に答える 2

2

もう1つのテンプレートはどうですか。

<xsl:template match="Text[count(body/*) = count(body/para[@type = 'new'])]" />
于 2013-01-14T16:03:38.230 に答える
2

ここに別の方法があります

<xsl:template match="body[para[@type='new']][not(*[2])]" />

つまり、body要素をタイプ 'new' のpara要素に一致させますが、2 番目の要素には一致させません。

于 2013-01-14T16:07:56.937 に答える