No exemplo eu coloquei Produto, mas a TAG que eu realmente quero poder alterar é a tag filha que está dentro da TAG que está dentro da TAG
Dragoon
Você não pode ter nada dinâmico nesse caso, você precisa saber qual é o nome da TAG e configurar o seu modelo!
Entendeu.
San_n
Mas o problema é bem sempre o nome da TAG é o mesmo, por isso eu queria ter uma saída para realizar essa substituição. Pq caso contrário eu só imagino ter q criar várias classes iguais apenas com nomes de tags diferentes que possam vir.
Não queria fazer isso pq fica muito feio, ptipo gambiarra.
Dragoon
Não estou entendendo?
Esse XML não vem sempre assim?
San_n
Não, os códigos de ICMS mudam.
Então de acordo com o código que vier o nome da TAG vai mudar.
Pode vir ICMS00, ICMS10, ICMS20, … e por aí vai.
Dragoon
O seu problema é o seguinte, querer condensar um rotina que não dá!
Você precisa verificar quais são os tipos e montar um classe base e sua heranças e ai resolver os eu problema!
Se você tiver vários, vai ter vários modelos, só precisa tomar cuidado com repetição
São 33 códigos de ICMS diferentes, seriam 33 classes
darlan_machado
Dá uma olhada e vê se te atende.
Uma alternativa é tentar ler as tags e os respectivos conteúdos inserindo os mesmos em mapas, talvez facilitasse a questão da leitura.
Porém, você teria que iterar sobre o documento e, então, ir lendo tag por tag. Isso poderia ocasionar lentidão.
Dragoon
@San_n precisa ver as 33 XML e montar uma estrutura aonde os dados possam ser compartilhados.
Pergunto a sua linguagem é C#?
Se não for possivel, se são 33 XML diferentes onde as suas estruturas são diferentes, onde o decorador muda a configuração, vai precisar ser 33 classes diferentes.
Você tem idéia e já verificou todos os layouts de classes?
Você já fez comparação em campos que se repetem?
Tem algum tutorial/documentação dessas estruturas XML?
Dragoon1 like
Pela classe que ela colocou no corpo de resposta é C# a linguagem.
San_n
Não são 33 XML, são 33 códigos de ICMS diferentes que podem vir aleatórios em um XML.
E como recupero o valor da TAG pelo nome, se coloco e no documento tem o programa vai dá erro.
Dragoon
Cite no minimo 2 exemplos, talvez consiga entender a sua duvida, Tag diferentes ficou vago nesse aspecto, eu sei como funciona esses XML mas, no seu caso não ficou claro
Perceba que existem duas Tags com nome e cada uma corresponde a um item em um pedido da nota fiscal, dentro de cada uma eu tenho a tags <prod> que contem as informações relacionadas ao produto.
Dentro das tags <det nItem="1"> e <det nItem="2"> existe a tag <imposto> dentro de imposto tem a tag que contem os dados de impostos por produto.
Dentro da tag <ICMS> eu tenho outras tags referentes só a impostos de icms por produto. E é ai que eu tenho a tal “Tag diferente”, pois dentro da tag mãe eu terei uma outra tag que pode variar o nome, no codigo eu tenho a tag , porém cada nota pode vir com um icms diferente, e ai no caso se na minha aplicação eu determinar que meu [XmlElement("ICMS00")] vai recuperar os dados dessa tag e no documento vier [XmlElement("ICMS60")] a minha aplicação vai falhar.
Dragoon
Não tem como você fazer um código dinâmico na hora de configurar por meio de atributo o novo valor, não é assim que funciona, você precisa fazer de outra forma isso ai, o grande mau desse XML é que eles nunca pensa no desenvolvedor.
Talvez fazer um novo código para ler esses dados … acho que o caminho é por ai.