在Java中从HttpResponse XML提取属性值
所以我已经得到了这里的帮助,所以我想为什么不再试一次呢!?如有任何建议,将不胜感激 我正在使用HTTP客户端并发出POST请求;响应是一个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
<?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);