Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javaxpath解释&x27-';用guid作为负数_Java_Xpath - Fatal编程技术网

javaxpath解释&x27-';用guid作为负数

javaxpath解释&x27-';用guid作为负数,java,xpath,Java,Xpath,我正在用Java编写一个XPath表达式,并试图获取具有特定GUID的所有元素。基本上,我在做: (NodeList)xpath.evaluate(“//object[guid=“+guid+”]”,objectDoc,XPathConstants.NODESET) 使用GUID: eb52a56c-2a16-4256-ab0c-523cb6d19a3f XPath向我抛出了一个错误: eb52a56c-2a16-4256-ab0c-523cb6d19a3f could not be form

我正在用Java编写一个XPath表达式,并试图获取具有特定GUID的所有元素。基本上,我在做:

(NodeList)xpath.evaluate(“//object[guid=“+guid+”]”,objectDoc,XPathConstants.NODESET)

使用GUID:

eb52a56c-2a16-4256-ab0c-523cb6d19a3f
XPath向我抛出了一个错误:

eb52a56c-2a16-4256-ab0c-523cb6d19a3f could not be formatted to a number!
我认为这是因为破折号。我错了吗?如果没有,有没有办法逃离他们?我通过Google发现XPath中提到了转义字符,但没有人提到破折号

谢谢,
科迪引用它。“//对象[guid='”+guid+“]”

引用它。“//object[guid=”“+guid+”]”“

正如EJP所说,它需要加引号

但是,通过字符串连接以这种方式构造XPath表达式是错误的方法。用这样的表达

xpath.evaluate("//object[guid=$guid]")
并使用XPathAPI(通过创建VariableResolver)绑定变量$guid


有很多好处:优化、代码清晰、避免注入攻击、避免只能通过询问StackOverflow问题来诊断的无法解释的行为等。

正如EJP所说,它需要引用

但是,通过字符串连接以这种方式构造XPath表达式是错误的方法。用这样的表达

xpath.evaluate("//object[guid=$guid]")
并使用XPathAPI(通过创建VariableResolver)绑定变量$guid

有很多好处:优化、代码清晰、避免注入攻击、避免只能通过询问StackOverflow问题来诊断的无法解释的行为,等等