Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Xpath-evaluate函数返回javax.xml.transform.TransformerException_Java_Xml_Xpath - Fatal编程技术网

Xpath-evaluate函数返回javax.xml.transform.TransformerException

Xpath-evaluate函数返回javax.xml.transform.TransformerException,java,xml,xpath,Java,Xml,Xpath,这是我第一次使用XPath,我试图查询一个非常基本的示例 String xml = "<resp><status>good</status><msg>hi</msg></resp>"; XPathFactory xpathFactory = XPathFactory.newInstance(); javax.xml.xpath.XPath xpath = xpathFactory.newXPath(

这是我第一次使用XPath,我试图查询一个非常基本的示例

    String xml = "<resp><status>good</status><msg>hi</msg></resp>";

    XPathFactory xpathFactory = XPathFactory.newInstance();
    javax.xml.xpath.XPath xpath = xpathFactory.newXPath();

    InputSource source = new InputSource(new StringReader(xml));

    String status = "";
    try {
        status = (String) xpath.evaluate("//resp/status", source,XPathConstants.STRING);
    } catch (Exception e) {
        e.printStackTrace();
    }

    System.out.println("status=" + status);
我收到以下例外情况:

javax.xml.transform.TransformerException:无法在上使用此上下文计算表达式 com.sun.org.apache.xpath.internal.xpath.executeUnknown源代码位于 com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evalun已知源 位于com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluateUnknown 源代码位于Heandlers.HTTP.xHTTP.java:74 at Views.Main.mainMain.java:15原因:java.lang.RuntimeException: 无法在处使用此上下文计算表达式 com.sun.org.apache.xpath.internal.axes.NodeSequence.setRootUnknown 来源于 com.sun.org.apache.xpath.internal.axes.LocPathIterator.executeUnknown 来源还有5个 -----java.lang.RuntimeException:无法在上使用此上下文计算表达式 com.sun.org.apache.xpath.internal.axes.NodeSequence.setRootUnknown 来源于 com.sun.org.apache.xpath.internal.axes.LocPathIterator.executeUnknown 来源:com.sun.org.apache.xpath.internal.xpath.executeUnknown 来源于 com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evalun已知源 位于com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluateUnknown 源代码位于Heandlers.HTTP.xHTTP.java:74 at Views.Main.mainMain.java:15 --------链接到------javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException:无法计算 使用此上下文的表达式 com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evaluateUnknown 源代码位于Heandlers.HTTP.xHTTP.java:74 at Views.Main.mainMain.java:15由以下原因引起: javax.xml.transform.TransformerException:无法计算 使用此上下文的表达式 com.sun.org.apache.xpath.internal.xpath.executeUnknown源代码位于 com.sun.org.apache.xpath.internal.jaxp.XPathImpl.evalun已知源 ... 3其他原因:java.lang.RuntimeException:无法计算 使用此上下文的表达式 com.sun.org.apache.xpath.internal.axes.NodeSequence.setRootUnknown 来源于 com.sun.org.apache.xpath.internal.axes.LocPathIterator.executeUnknown 来源5更多状态=


有什么建议吗?

听起来您使用的是无效的InputSource,例如org.w3c.css.sac.InputSource。确保已导入org.xml.sax.InputSource。

在我的示例中,是导入jdk.internal.org.xml.sax.InputSource,而不是org.xml.sax.InputSource