2017-10-10 74 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相匹配的价值”,你的文字“我要的是输出,这并不匹配值”。这个例子表明你想要类似'('$','〜','#','^')[not(contains('this是#^ test1',。))]'(分别在模板中' ('$','〜','#','^')[not(contains(current(),。))]'。 –

+0

@MartinHonnen,看起来像是对我的回答,如果你把它放在答案是,OP可以接受它 –

回答

0

对于样本中的结果,您可以使用例如

('$', '~', '#', '^')[not(contains('this is #^test1', .))] 

(分别在模板)

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

这对所有节点都适用,如果我想扩展支票以包含属性,我该怎么办?你能指导我吗? – ChipsnCoke

+0

一个'”匹配所有属性节点和所有文本节点,那么您只需确保使用例如'处理属性节点'。如果你无法解决问题,可以用一个XML样本和你想要的结果来问一个新问题。 –

+0

谢谢。我问了一个新问题。 – ChipsnCoke

相关问题