java - 使用 XPath 解析 xml 以获取单个值返回空字符串

标签 java android xpath

我正在尝试在此 XML 中获取此值 B006PF20EI

<ItemSearchResponse xmlns="http://webservices.amazon.com/AWSECommerceService/2011-08-01">
    <OperationRequest>...</OperationRequest>
    <Items>
        <Request>...</Request>
        <TotalResults>8</TotalResults>
        <TotalPages>1</TotalPages>
        <MoreSearchResultsUrl>...</MoreSearchResultsUrl>
        <Item>
            <ASIN>B006PF20EI</ASIN>

我像这样使用 XPath

public String parseXml(String xmlString){

    DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    try {

        DocumentBuilder builder = domFactory.newDocumentBuilder();
        Document dDoc = builder.parse(new InputSource(new StringReader(xmlString)));

        XPath xPath = XPathFactory.newInstance().newXPath();
        //Node node = (Node) xPath.evaluate("/Items/Item/ASIN", dDoc, XPathConstants.NODE);
        //System.out.println(node.getNodeValue());
        String value = xPath.evaluate("/ItemSearchResponse/resp/status", dDoc);
        return value;
    } catch (Exception e) {
        Log.e("MYAPP", "exception", e);
        return null;
    }
}

但看起来该方法只是返回一个空字符串

最佳答案

使用好的路径:

/ItemSearchResponse/Items/Item/ASIN

关于java - 使用 XPath 解析 xml 以获取单个值返回空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34379613/

相关文章:

java - 如何在 HTTP GET 中获取 anchor 名称?

java - 关闭这个 "FileInputStream"Sonar

android - 视频在树莓派 3 上安装的 Android 上滞后

android - 单线程池——ExecutorService 或 Handler + HandlerThread

xml - 如何在子节点中选择包含某个子字符串的节点?

java - 通过selenium java下载验证码

java - 无法初始化类 sun.nio.ch.SocketChannelImpl$DefaultOptionsHolder - Teamcity 重新启动后无法工作

java - 如何组合对象项并求和数量 - JAVA

Android从自定义 ListView 中的edittext获取数据

xml - 如何使用 XPath 表达式查找数组中的元素