[英]Exception while evaluating simple XPath expression
嗨,我在嘗試編寫測試時遇到XPath表達式問題。 我有以下代碼片段。
final String resultCode = xPath.compile(
"//*:Envelope/*:Body/ResultCode/text()")
.evaluate(responseEntity.getBody());
responseEntity是由我的模擬返回的。 它由HttpStatus和xml格式的正確響應主體組成。 在執行測試時,出現此異常
由以下原因引起:javax.xml.xpath.XPathExpressionException:在net.sf處無法找到net.sf.saxon.xpath.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:321)上類java.lang.String的節點的對象模型實現。 saxon.xpath.XPathExpressionImpl.evaluate(XPathExpressionImpl.java:396)...
我正在使用saxon來完成此任務,但是老實說,我對它不是很熟悉。 任何建議檢查什么都歡迎
好的,我知道了。 不幸的是,當您不得不在根本不了解的領域中修改某人的代碼時,就會發生這種情況。
問題是,在期望NodeInfo
, DOM
, Document
等之一的同時,將字符串傳遞給了evaluate
方法。
也感謝@paul trmbrth修復了格式錯誤的xpath表達式。
我將代碼更改為如下所示:
InputSource source = new InputSource(new StringReader(responseEntity.getBody()));
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
final Document document = db.parse(source);
final String resultCode = xPath.compile(
"//*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='ResultCode']/text()")
.evaluate(document);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.