[
Lists Home |
Date Index |
Thread Index
]
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>
>
>
>
>
>
|