2017-01-16 72 views
0

我想弄清楚如何在写入xpath时在定位器中忽略''。如何忽略Xpath中的''?

例如:

//affiliation-summary[@ng-if='oaProfileStatus.oa.workflowState === 'PENDING_CONFIRMATION''] 

现在什么,我试图做的是忽略“P之前和” N后挂起和确认分别使Xpath的不把这些作为标识符的起点和终点。

只要是充分证明,如果我试图实现尚不清楚那么这就是我们在Java

System.out.println("\"Hello"); 

“从终止字符串,这样的” Hello将打印忽略做。

如何在Xpath中实现此目的?

+1

您可以使用双引号代替,所以'@ NF-IF =“OA ... 。'''' –

+0

@ThorbjørnRavnAndersen双引号确实有效,我可以继续前进。但是仍然有办法实现有问题的行为? – SelThroughJava

+0

http://stackoverflow.com/questions/16664090/in-java-should-i-escape-a-single-quotation-mark-in-string-double-quoted –

回答

0

在XPath 1.0中,您可以使用"作为字符串分隔符将'放入字符串中,反之亦然。当XPath嵌套在XML文档(例如XSLT,XSD或XProc)中时,您可能还需要将其作为XML字符引用来转义,或者当XPath嵌套在Java/C#字符串中时,您可能需要将其转义为\'\"

在XPath 2.0有一个额外的选项:用于通过单引号分隔的字符串可以包括两个单引号('Don''t do it!') 和用于通过双引号分隔的字符串可以包括一个加倍双引号("Don't say ""I can't""")。

的XPath的范围内,XSLT一个有用的技巧,特别是1.0,就是用变量,例如

<xsl:variable name="quot">"</xsl:variable> 
<xsl:variable name="apos">'</xsl:variable> 
<xsl:variable name="sentence" 
select="concat('Don', $apos, 't say ', $quot, 'I can', $apos, 't', $quot)"/>