Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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
在Java中从HttpResponse XML提取属性值_Java_Xml_Dom_Xml Parsing_Httpresponse - Fatal编程技术网

在Java中从HttpResponse XML提取属性值

在Java中从HttpResponse XML提取属性值,java,xml,dom,xml-parsing,httpresponse,Java,Xml,Dom,Xml Parsing,Httpresponse,所以我已经得到了这里的帮助,所以我想为什么不再试一次呢!?如有任何建议,将不胜感激 我正在使用HTTP客户端并发出POST请求;响应是一个XML正文,如下所示: <?xml version="1.0" encoding="UTF-8"?> <invokeResult> <method name="RS"> <params> <param name="sp" value="" /> <param na

所以我已经得到了这里的帮助,所以我想为什么不再试一次呢!?如有任何建议,将不胜感激

我正在使用HTTP客户端并发出POST请求;响应是一个XML正文,如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
<invokeResult>
<method name="RS">
<params>
      <param name="sp" value="" />
      <param name="cp" value="" />
      <param name="ck" value="" />
 </params>
 </method>
 <status>OK</status>
 <result>
    <status>ENDED</status>
    <reportUrl></reportUrl>
    <runId></runId>
    <pass count="0" />
    <fail count="1" />
    <message>column,report</message>
  </result>
</invokeResult>    
我想通过java代码从xml响应中获取
的值。有人能帮我吗

我制作的详细代码,但得到空指针异常

DefaultHttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet("REQUEST-URL");
        HttpResponse response = client.execute(request);
        if (response.getStatusLine().getStatusCode() == 200 && response.getEntity() != null) { 
            String responseString = EntityUtils.toString(response.getEntity());
            responseString=responseString.replaceAll("<?xml*?>", "").trim();
            DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
                    .newInstance();
            DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(new InputSource(new StringReader(
                    responseString)));
            NodeList orderNode = doc.getElementsByTagName("<pass count=");
            String strOrdNo = orderNode.item(0).getTextContent();
            logger.info("pass Value = " + strOrdNo);
DefaultHttpClient=newdefaulthttpclient();
HttpGet请求=新的HttpGet(“请求URL”);
HttpResponse response=client.execute(请求);
如果(response.getStatusLine().getStatusCode()=200&&response.getEntity()!=null){
String responseString=EntityUtils.toString(response.getEntity());
responseString=responseString.replaceAll(“,”).trim();
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();
Document doc=docBuilder.parse(新InputSource(新StringReader(
回应),;

NodeList orderNode=doc.getElementsByTagName(“请注意
通过
失败
是空标记(标记关闭为
/>
),它们不包含任何值。如果您试图提取
计数
属性的值,可以尝试以下操作

NodeList orderNode = doc.getElementsByTagName("pass");
String strOrdNo = orderNode .item(0).getAttributes().getNamedItem("count").getNodeValue();
logger.info("pass Value = " + strOrdNo);

你在哪一行得到NPE?我在NodeList orderNode=doc.getElementsByTagName(“你只需要在那里传递标签名;
doc.getElementsByTagName(“传递”)
。请检查我下面的答案。太好了。我现在得到了值。非常感谢先生。
NodeList orderNode = doc.getElementsByTagName("pass");
String strOrdNo = orderNode .item(0).getAttributes().getNamedItem("count").getNodeValue();
logger.info("pass Value = " + strOrdNo);