Typical, I bang my head all afternoon, post, then it finally dawns on me - I now have it sort of working.
However, could someone in the know tell me if this is the "correct" approach ? I'm especially not sure about the "node(0)" line. public void setValueAt(Object o, int row, int col) { Object object = definition.getRowXPath().selectNodes(source).get(row); Iterator i = ((org.dom4j.tree.DefaultElement)object).elementIterator(); for ( Iterator iter = i; iter.hasNext(); ) { Object oo = iter.next(); org.dom4j.Node n = ((org.dom4j.tree.DefaultElement)oo).node(0); System.err.println(n); n.setText(o.toString()); } } John Sharp wrote: > > Hi, > I'm following from an earlier suggestion to make XMLTableModel > updates. The method was to use XPath to map back from the table > row/col to the Node at this location in the document. > > The following code does update the document (via the node handle) > but at the wrong place - always at the second last row. > > public void setValueAt(Object o, int row, int col) { > > Object object = definition.getRowXPath().selectNodes(source); > > if ( object instanceof List ) { > List list = (List) object; > for ( Iterator iter = list.iterator(); iter.hasNext(); ) { > Object obj = iter.next(); > > org.dom4j.tree.DefaultElement defaultElement = > (org.dom4j.tree.DefaultElement) obj; > > System.err.println( "rowIndex:" + row ); > System.err.println( "nodeCount:" + defaultElement.nodeCount() ); > System.err.println( "name:" + ((org.dom4j.Node) > defaultElement.node(row)).getName() ); > System.err.println( "parent:" + defaultElement.getParent()); > > org.dom4j.Node node = defaultElement.node(row); > > if (defaultElement.nodeCount() ==1) { > node.setText("****NEW*VALUE****"); > return; > } > } > } > > The xml data file is follows:- > <?xml version="1.0"?> > > <EngineeringSpecification > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:noNamespaceSchemaLocation="spec.xsd"> > > <Summary> > <device>F711111</device> > </Summary> > <Summary> > <device>F722222</device> > </Summary> > <Summary> > <device>F733333</device> > </Summary> > <Summary> > <device>F744444</device> > </Summary> > <Summary> > <device>F755555</device> > </Summary> > > </EngineeringSpecification> > > -- > John. > > ------------------------------------------------------- > This sf.net email is sponsored by: To learn the basics of securing > your web site with SSL, click here to get a FREE TRIAL of a Thawte > Server Certificate: http://www.gothawte.com/rd524.html > _______________________________________________ > dom4j-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/dom4j-user -- Texas Instruments Inc Product Development tel:214 480 4253 PO BOX 660199 MS: 8645 FORE/A-3101 fax:214 480 4401 12500 TI Boulevard Dallas, TX 75266-0199 nawk nawk, Who's there ? Aho, Weinberger and Kerninghan. ------------------------------------------------------- This sf.net email is sponsored by: To learn the basics of securing your web site with SSL, click here to get a FREE TRIAL of a Thawte Server Certificate: http://www.gothawte.com/rd524.html _______________________________________________ dom4j-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dom4j-user