Java + xml

Pessoal tenho um arquivo xml abaixo:

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882' xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882' xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'> <s:Schema id='RowsetSchema'> <s:ElementType name='row' content='eltOnly'> <s:AttributeType name='IDCARTORIO' rs:number='1' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='50'/> </s:AttributeType> <s:AttributeType name='NOME' rs:number='2' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='100'/> </s:AttributeType> <s:AttributeType name='RGRNE' rs:number='3' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='25'/> </s:AttributeType> <s:AttributeType name='EXPEDI' rs:number='4' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='10'/> </s:AttributeType> <s:AttributeType name='CPFCNPJ' rs:number='5' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='20'/> </s:AttributeType> <s:AttributeType name='QUALID' rs:number='6' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='20'/> </s:AttributeType> <s:AttributeType name='ATO' rs:number='7' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='NATUREZA' rs:number='8' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='30'/> </s:AttributeType> <s:AttributeType name='VALOR' rs:number='9' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='float' dt:maxLength='8' rs:precision='15' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='DATA' rs:number='10' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='dateTime' rs:dbtype='variantdate' dt:maxLength='16' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='LIV' rs:number='11' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='LIVCOMPL' rs:number='12' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='FOLI' rs:number='13' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='FOLICOMPL' rs:number='14' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='FOLF' rs:number='15' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='FOLFCOMPL' rs:number='16' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='REVOG' rs:number='17' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='1'/> </s:AttributeType> <s:AttributeType name='RLIV' rs:number='18' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='RLIVCOMPL' rs:number='19' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='RFI' rs:number='20' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='RFICOMPL' rs:number='21' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='RFF' rs:number='22' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/> </s:AttributeType> <s:AttributeType name='RFFCOMPL' rs:number='23' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='5'/> </s:AttributeType> <s:AttributeType name='RORIG' rs:number='24' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'> <s:datatype dt:type='string' dt:maxLength='200'/> </s:AttributeType> <s:extends type='rs:rowbase'/> </s:ElementType> </s:Schema> <rs:data> <z:row IDCARTORIO='SISCART' NOME='JOSE DA SILVA' RGRNE='132132131' EXPEDI='SSP/SP' CPFCNPJ='32132132131' QUALID='OUTD' ATO='1' NATUREZA='ESCRIT' VALOR='12.5' DATA='2005-06-22T00:00:00' LIV='1' FOLI='1' FOLF='2' REVOG='N' RLIV='0' RFI='0' RFF='0'/> </rs:data> </xml>

aonde tem a linha <z:row IDCARTORIO…/> tenho q adicionar varias dessa linha de acordo com o numero de registro no meu banco… qual a melhor opcao para fazer isso? tem alguma api que eu consiga abrir esse XML inserir o q eu preciso e salvar em outro lugar um arquivo novo??

obrigado

Olá.
Cara, sempre que preciso trabalhar com XML eu uso o XStream (http://xstream.codehaus.org/).
Pra ler e gerar XML em Java não tem melhor.
Abraços.

Procura por DOM e Commons Betwixt!

Abraços,

Conheci o XStream a semana passada e gostei!

Abracao.