1

可能重复:
从 Java 发送 XPath 变量

当我运行这个表达式时:

    XPathExpression xpe = xpath.compile("//bb[name/text()='k2']/value");    

它工作正常。

但是当我尝试像这样种植自己的变量(而不是'k2')时:

    XPathExpression xpe = xpath.compile("//bb[name/text()=" + c_name +"]/value");

tt 不工作。

我认为问题在于工作表达式语法包含“k2”,而第二个不以这种方式出现。

任何想法如何正确种植变量?我尝试将 String 和 Character[] 都不起作用。

4

1 回答 1

3
"//bb[name/text()='" + c_name +"']/value"

请注意对 . 的引用周围的单引号c_name

你可以争辩说,替代使用String.format()

 "//bb[name/text()='%s']/value".format(c_name)

更具可读性。

正如 dogbane 所指出的,如果变量值本身包含引号,这将不起作用。有关更复杂但更安全的解决方案,请参阅此 SO 答案

于 2012-10-04T11:25:19.773 回答