Eu sei que tem vários exemplos na internet de como usar o Xstream. Porém, procurei um monte e não achei a resposta pra seguinte dúvida:
Eu quero ler apenas um duas tags do xml que estou lendo, porém o xml tem 5 tags.
Como eu faria para ler apenas essas duas tags?
Classe java:
@XStreamAlias("arg1")
public class RequisicaoVO implements Serializable {
// private String email;
// private String senha;
// private Integer cnesPrestador;
// private Integer cnesUnidadeSaude;
//private Integer perfilUsuario;
private String cartaoSUSPaciente;
private String numeroProntuario;
private Date dataColeta;
private String CPFResponsavelColeta;
private String conselho;
private String nomePaciente;
private String nomeMae;
private String sexo;
private Date dtNascimento;
private Integer racaCor;
private String etnia;
private Integer tratamentoRadioterapiaUtilizado;
private Integer usaDiu;
private Date dataUltimaMenstruacao;
private Integer estaGravida;
private String sangramentoAposRelacaoSexual;
private Integer usaPilulaAnticoncepcional;
private String sangramentoAposMenopausa;
private Integer usaHormonio;
private String sinaisSugestivosDst;
private String anoExamePreventRealizado;
private Integer examePreventivoRealizado;
private Integer codTipoMotivoExameCitopatologico;
private Integer codTipoInspecaoColo;
Onde leio o xml:
public class Main {
public static void main(String[] args) {
XStream xstream = new XStream();
xstream.alias("arg1", RequisicaoVO.class);
File f = new File("c:/xmlRequisicao.xml");
RequisicaoVO r = (RequisicaoVO) xstream.fromXML(f);
System.out.println(r.getCartaoSUSPaciente());
}
}
Arquivo xml:
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
-<SOAP-ENV:Body>
-<salvarRequisicaoCitopatologicoColoUtero xmlns="http://www.saude.gov.br/siscan-ws">
-<arg0 xmlns="">
<email>email</email>
<senha>senha</senha>
<cnesPrestador>cnesPrestador</cnesPrestador>
<cnesUnidadeSaude>cnesUnidadeSaude</cnesUnidadeSaude>
<perfilUsuario>02</perfilUsuario>
</arg0>
-<arg1 xmlns="">
<cartaoSUSPaciente>cartaoSUSPaciente</cartaoSUSPaciente>
<numeroProntuario/>
<dataColeta>data</dataColeta>
<CPFResponsavelColeta>01</CPFResponsavelColeta>
<conselho>conselho</conselho>
<nomePaciente>TESTE</nomePaciente>
<nomeMae>teste</nomeMae>
<sexo>F</sexo>
<dtNascimento>19760923</dtNascimento>
<racaCor>99</racaCor>
<etnia/>
<tratamentoRadioterapiaUtilizado>01</tratamentoRadioterapiaUtilizado>
<usaDiu>02</usaDiu>
<dataUltimaMenstruacao>20140128</dataUltimaMenstruacao>
<estaGravida>02</estaGravida>
<sangramentoAposRelacaoSexual>N</sangramentoAposRelacaoSexual>
<usaPilulaAnticoncepcional>02</usaPilulaAnticoncepcional>
<sangramentoAposMenopausa>N</sangramentoAposMenopausa>
<usaHormonio>02</usaHormonio>
<sinaisSugestivosDst>N</sinaisSugestivosDst>
<anoExamePreventRealizado/>
<examePreventivoRealizado>01</examePreventivoRealizado>
<codTipoMotivoExameCitopatologico>01</codTipoMotivoExameCitopatologico>
<codTipoInspecaoColo>01</codTipoInspecaoColo>
</arg1>
</salvarRequisicaoCitopatologicoColoUtero>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Exceção gerada na hora de ler:
Exception in thread "main" com.thoughtworks.xstream.mapper.CannotResolveClassException: SOAP-ENV:Envelope
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56) at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:56)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ClassAliasingMapper.realClass(ClassAliasingMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)
at com.thoughtworks.xstream.core.util.HierarchicalStreams.readClassType(HierarchicalStreams.java:29)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:133)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1058)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1042)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1006)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:948)
at Main.main(Main.java:25)
Java Result: 1
Como eu faria para ler a tag “arg1” e/ou a tag “arg0” nesse caso?
