2017-10-10 12 views
0

完全なXMLを調べて、特定の文字が存在するかどうかを特定する必要があります。私は次のテキストを照合しています。xsl:analyze-stringを使用する場合、一致する値を特定したい

<xsl:analyze-string select="." regex="[$~#^]"> 
    <xsl:matching-substring> 
    <xsl:value-of select="'yes'"/> 
    </xsl:matching-substring> 
    <xsl:non-matching-substring> 
    <xsl:value-of select="'no'"/> 
    </xsl:non-matching-substring> 
</xsl:analyze-string> 

しかし、私が望むのは、一致しない値を出力することです。

このxmlは$と〜を出力する必要があります。

<sample> 
    <test>this is #^test1</test> 
</sample> 
+4

あなたの件名は「私は一致する値をindentifyしたい」と言い、あなたの文章は、「私が欲しいのは、出力に試合をdoesntの値です」。この例では、 '( '$'、 '〜'、 '#'、 '^')[ ( '$'、 '〜'、 '#'、 '^')[not(現在の()、))] '。 –

+0

@MartinHonnen、それは私の答えのようです。 –

答えて

0

サンプルの結果は、たとえば次のように使用できます。

(テンプレート内のそれぞれ)
('$', '~', '#', '^')[not(contains('this is #^test1', .))] 

('$', '~', '#', '^')[not(contains(current(), .))] 
+0

これはすべてのノードでうまくいきますが、属性を含めるようにチェックを拡張したいのであれば、どうすればいいですか?私に案内してもらえますか? – ChipsnCoke

+0

'を使って属性ノードを処理することだけを確認する必要があります。 'あなたがそれを理解できないなら、XMLのサンプルとあなたが望む結果で新しい質問をしてください。 –

+0

ありがとう、私は新しい質問をしました。 – ChipsnCoke

関連する問題