[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Java NPE at node.getAttribute( )
You're calling the getAttribute() method on an Attribute node. NodeList nodeList=xmlDocument.selectNodes("/applet/transport/@name", nsr); returns only Attribute nodes (since the last thing in your XPath expression is "@name". Maybe you wanted the XPath expression "/applet/transport/name"? Otherwise, you need to call the getValue() method on an Attribute node, not getAttribute(). Nishi Prafull wrote: >Hi: > >If I have the following in my xml doc, ><tptd:applet xmlns tptd="http://www.oracle.com/tptd/configuration" >xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >xsi:schemaLocation="http://www.oracle.com/tptd/configuration plus >_config.xsd"> ><transport name="jrmp"/> ><transport name="codebase"/>..... >..... ></tptd:applet> > >I want to extract the values of the "name" nodes and subsitute them as >values for the "name" nodes in another xml document. I have written >the following DOM Parser implementation but it gives me a Java NPE at >node.getAttribute(). >Can someone please let me know what I am doing wrong here -- > >public void doSub() throws FileNotFoundException, IOException, >XSLException, InvocationTargetException, XMLParseException, >SAXException > { > URL in_xml_url = new URL("file://" + getSpec()); > FileOutputStream out_xml = new FileOutputStream(m_outfileSpec, false); > > XMLDocument xmlDocument = null; > > //Create a parser > DOMParser parser = new DOMParser(); > > parser.setValidationMode(XMLConstants.NONVALIDATING); > parser.setBaseURL(in_xml_url); > > //Create a document from the url > parser.parse(in_xml_url); > > //Cache the document from the parser > xmlDocument = parser.getDocument(); > > XMLElement nsr = (XMLElement) xmlDocument.getDocumentElement(); > > //namespace resolver > NodeList nodeList=xmlDocument.selectNodes("/applet/transport/@name", nsr); > > XMLElement node=(XMLElement)nodeList.item(0); > String trans_val1 = node.getAttribute("name"); //getting Java NPE here > XMLElement node1=(XMLElement)nodeList.item(1); > String trans_val2 = node1.getAttribute("name"); > > //subsitute in the new document > parser.parse(new FileReader(m_outfileSpec)); > XMLDocument document1 =parser.getDocument(); > > XMLElement nsr_new = (XMLElement) document1.getDocumentElement(); > > NodeList nodeList1=document1.selectNodes("/configuration//plus/transport/@name",f); > XMLElement node2=(XMLElement)nodeList1.item(0); > node2.setAttribute("name",trans_val1); > XMLElement node3=(XMLElement)nodeList.item(1); > node3.setAttribute("name",trans_val2); > document1.print(out_xml); > out_xml.close(); > } > > >Thanks much. > >----------------------------------------------------------------- >The xml-dev list is sponsored by XML.org <http://www.xml.org>, an >initiative of OASIS <http://www.oasis-open.org> > >The list archives are at http://lists.xml.org/archives/xml-dev/ > >To subscribe or unsubscribe from this list use the subscription >manager: <http://www.oasis-open.org/mlmanage/index.php> > > > > >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|