当我运行这个表达式时:
XPathExpression xpe = xpath.compile("//bb[name/text()='k2']/value");
工作正常。
但是当我尝试种植我自己的变量(而不是'k2')时,这样:
XPathExpression xpe = xpath.compile("//bb[name/text()=" + c_name +"]/value");
tt不起作用。
我认为问题是工作表达式语法包含'k2'而第二种不会出现这种情况。
任何想法如何正确植入变量?我试过把字符串和字符[]都不起作用。
答案 0 :(得分:3)
"//bb[name/text()='" + c_name +"']/value"
请注意围绕c_name
的引用的单引号。
你可以使用String.format()
"//bb[name/text()='%s']/value".format(c_name)
更具可读性。
正如dogbane所说,如果变量值本身包含引号,这将不起作用。有关更复杂但更安全的解决方案,请参阅this SO answer。