Remove n lines from a string

Asked

Viewed 58 times

0

Given a String as template:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <X-OPNET-Transaction-Trace:X-OPNET-Transaction-Trace xmlns:X-OPNET-Transaction-Trace="http://opnet.com">pid=31043,requestid=24f82ad0f7314ab818ae059bbe1d18c3e1be98ee82aab8d1</X-OPNET-Transaction-Trace:X-OPNET-Transaction-Trace>
   </soapenv:Header>
   <soapenv:Body>
      <ns2:buscaEventosResponse xmlns:ns2="http://resource.webservice.correios.com.br/">
         <return>
            <versao>2.0</versao>
            <qtd>1</qtd>
            <objeto>
               <numero>xxxxxx</numero>
               <sigla>RS</sigla>
               <nome>REGISTRADO LÓGICO</nome>
               <categoria>REGISTRADO LÓGICO</categoria>
               <evento>
                  <tipo>RO</tipo>
                  <status>01</status>
                  <data>27/01/2017</data>
                  <hora>09:11</hora>
                  <descricao>Objeto encaminhado</descricao>
                  <local>CENTRO INTERNACIONAL PR-GEINT</local>
                  <codigo>81010971</codigo>
                  <cidade>CURITIBA</cidade>
                  <uf>PR</uf>
                  <destino>
                     <local>RFB - Liberado sem Tributação</local>
                     <codigo>00002984</codigo>
                     <uf>BR</uf>
                  </destino>
               </evento>
               <evento>
                  <tipo>PAR</tipo>
                  <status>16</status>
                  <data>20/01/2017</data>
                  <hora>11:09</hora>
                  <descricao>Objeto recebido pelos Correios do Brasil</descricao>
                  <local>UNIDADE INTERNACIONAL CURITIBA</local>
                  <codigo>80235980</codigo>
                  <cidade>CURITIBA</cidade>
                  <uf>PR</uf>
               </evento>
               <evento>
                  <tipo>RO</tipo>
                  <status>01</status>
                  <data>01/01/2017</data>
                  <hora>11:15</hora>
                  <descricao>Objeto encaminhado</descricao>
                  <local>CHINA</local>
                  <codigo>00156000</codigo>
                  <cidade>CHINA</cidade>
                  <uf>CN</uf>
                  <destino>
                     <local>Unidade de Tratamento Internacional</local>
                     <codigo>00500001</codigo>
                     <cidade>BRASIL</cidade>
                     <uf>BR</uf>
                  </destino>
               </evento>
               <evento>
                  <tipo>PO</tipo>
                  <status>01</status>
                  <data>31/12/2016</data>
                  <hora>22:13</hora>
                  <descricao>Objeto postado</descricao>
                  <local>CHINA</local>
                  <codigo>00156000</codigo>
                  <cidade>CHINA</cidade>
                  <uf>CN</uf>
               </evento>
            </objeto>
         </return>
      </ns2:buscaEventosResponse>
   </soapenv:Body>
</soapenv:Envelope>

It is a format of xml yes, I want to remove the first lines and the last ones being that in the end it has to stay like this:

<objeto>
               <numero>xxxxxx</numero>
               <sigla>RS</sigla>
               <nome>REGISTRADO LÓGICO</nome>
               <categoria>REGISTRADO LÓGICO</categoria>
               <evento>
                  <tipo>RO</tipo>
                  <status>01</status>
                  <data>27/01/2017</data>
                  <hora>09:11</hora>
                  <descricao>Objeto encaminhado</descricao>
                  <local>CENTRO INTERNACIONAL PR-GEINT</local>
                  <codigo>81010971</codigo>
                  <cidade>CURITIBA</cidade>
                  <uf>PR</uf>
                  <destino>
                     <local>RFB - Liberado sem Tributação</local>
                     <codigo>00002984</codigo>
                     <uf>BR</uf>
                  </destino>
               </evento>
               <evento>
                  <tipo>PAR</tipo>
                  <status>16</status>
                  <data>20/01/2017</data>
                  <hora>11:09</hora>
                  <descricao>Objeto recebido pelos Correios do Brasil</descricao>
                  <local>UNIDADE INTERNACIONAL CURITIBA</local>
                  <codigo>80235980</codigo>
                  <cidade>CURITIBA</cidade>
                  <uf>PR</uf>
               </evento>
               <evento>
                  <tipo>RO</tipo>
                  <status>01</status>
                  <data>01/01/2017</data>
                  <hora>11:15</hora>
                  <descricao>Objeto encaminhado</descricao>
                  <local>CHINA</local>
                  <codigo>00156000</codigo>
                  <cidade>CHINA</cidade>
                  <uf>CN</uf>
                  <destino>
                     <local>Unidade de Tratamento Internacional</local>
                     <codigo>00500001</codigo>
                     <cidade>BRASIL</cidade>
                     <uf>BR</uf>
                  </destino>
               </evento>
               <evento>
                  <tipo>PO</tipo>
                  <status>01</status>
                  <data>31/12/2016</data>
                  <hora>22:13</hora>
                  <descricao>Objeto postado</descricao>
                  <local>CHINA</local>
                  <codigo>00156000</codigo>
                  <cidade>CHINA</cidade>
                  <uf>CN</uf>
               </evento>
            </objeto>

How can I do ?

1 answer

2


You can use the substring method as follows:

texto.substring(texto.indexOf("<objeto>"), texto.indexOf("</objeto>") + 10)

The text variable would contain the text read from the XML file. As you always have this tag opening and closing would work for this file format.

OBS: The best way would actually be to use a serialization API for XML, such as Xstream. Then you would have the entire object mapped out and would only extract the information you were interested in.

  • It worked, thank you very much.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.