Now I am want to parse xml which is coming from webservice. For parsing, I used xpath and java. I have the following code:
package test.client; import com.sun.org.apache.xpath.internal.NodeSet; import java.io.FileReader; import java.io.StringReader; import javax.lang.model.element.Element; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathFactory; import org.w3c.dom.NodeList; import org.xml.sax.InputSource; public class GetAlarmsCriticalDataCenterLinksDown { public static void main(String args[]) throws Exception { try { GetAlarms ga = new GetAlarms(); String xml = ga.getAlarms( "Alarms", "C:/Documents and Settings/Administrator/My Documents/NetBeansProjects/WebSpectrumDemo/src/java/com/xml/Alarms/GetAlarmsCriticalDataCenterLinksDown.xml"); System.out.println("Response XML:\n " + xml); XPathFactory factory = XPathFactory.newInstance(); XPath xPath = factory.newXPath(); String loc = ""; NodeList nodes = (NodeList) xPath.evaluate( "//alarm-response-list/alarm-responses/alarm", new InputSource(new StringReader(xml)), XPathConstants.NODESET); System.out.println("Success : " + nodes.getLength()); } catch (Exception e) { System.out.println(e); } } }
and my String xml looks like
<?xml version="1.0" encoding="UTF-8"?> <alarm-response-list xmlns="http://www.ca.com/spectrum/restful/schema/response" error="EndOfResults" throttle="2" total-alarms="2"> <alarm-responses> <alarm id="51230f5c-11fe-1002-01bc-000c296b3541"> <attribute id="0x1006e">HBBCPMPLSR1.hdfcami.com</attribute> <attribute id="0x11f84" error="NoSuchAttribute" /> <attribute id="0x118cd" /> <attribute id="0x11f4e">1361252188</attribute> </alarm> <alarm id="512313db-c5ee-1003-01bc-000c296b3541"> <attribute id="0x1006e">HBBCPINTR0.hdfcami.com</attribute> <attribute id="0x11f84" error="NoSuchAttribute" /> <attribute id="0x118cd" /> <attribute id="0x11f4e">1361253339</attribute> </alarm> </alarm-responses> </alarm-response-list>
But I'm stuck. I'm getting nodes.getLength() = 0
.
Any help will be appreciated. I want to parse whole xml and get the value of the attribute.
alarm-response-list
?