javaxpath解释&x27-';用guid作为负数
我正在用Java编写一个XPath表达式,并试图获取具有特定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
(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问题来诊断的无法解释的行为,等等