Xml

21/12/2009

1

Olá,
Pessoal.
Nunca fiz um xml antes.
Estou com a seguinte duvida.

Preciso que meu Xml fique assim:
    - <Servico>
        - <Valores>
              <ValorServicos>100000.00</ValorServicos>
              <ValorDeducoes>10.00</ValorDeducoes>
              <ValorPis>10.00</ValorPis>
              <ValorCofins>10.00</ValorCofins>
              <ValorInss>10.00</ValorInss>
              <ValorIr>10.00</ValorIr>
              <ValorCsll>10.00</ValorCsll>
              <IssRetido>1</IssRetido>
              <ValorIss>3499.30</ValorIss>
              <ValorIssRetido>3499.30</ValorIssRetido>
              <OutrasRetencoes>10.00</OutrasRetencoes>
              <BaseCalculo>99980.00</BaseCalculo>
              <Aliquota>0.035</Aliquota>
              <ValorLiquidoNfse>96420.70</ValorLiquidoNfse>
              <DescontoIncondicionado>10.00</DescontoIncondicionado>
              <DescontoCondicionado>10.00</DescontoCondicionado>
          </Valores>
      <ItemListaServico>11.01</ItemListaServico>
      <CodigoTributacaoMunicipio>522310000</CodigoTributacaoMunicipio>
      <Discriminacao>Teste.</Discriminacao>
      <CodigoMunicipio>3106200</CodigoMunicipio>
    </Servico>

Acima, existe um node dentro do outro.
o node Valores termina, depois tem mais quatro itens para fechar o node Servico

Fiz este seguinte código.

 Root.AddChild('Servico');
 with Root.AddChild('Valores') do begin
    AddChild('ValorServicos').NodeValue            := '100000.00';
    AddChild('ValorDeducoes').NodeValue            := '10.00';
    AddChild('ValorPis').NodeValue                 := '10.00';
    AddChild('ValorCofins').NodeValue              := '10.00';
    AddChild('ValorInss').NodeValue                := '10.00';
    AddChild('ValorIr').NodeValue                  := '10.00';
    AddChild('ValorCsll').NodeValue                := '10.00';
    AddChild('IssRetido').NodeValue                := '10.00';
    AddChild('ValorIss').NodeValue                 := '10.00';
    AddChild('ValorIssRetido').NodeValue           := '10.00';
 end;





E tenho o seguinte resultado de xml:

  <Servico />
- <Valores>
      <ValorServicos>100000.00</ValorServicos>
      <ValorDeducoes>10.00</ValorDeducoes>
      <ValorPis>10.00</ValorPis>
      <ValorCofins>10.00</ValorCofins>
      <ValorInss>10.00</ValorInss>
      <ValorIr>10.00</ValorIr>
      <ValorCsll>10.00</ValorCsll>
      <IssRetido>10.00</IssRetido>
      <ValorIss>10.00</ValorIss>
      <ValorIssRetido>10.00</ValorIssRetido>
</Valores>

Não consigo fazer o node Valores ficar dentro do node Servico.

Obrigado!!!!
At,
John



Responder

Posts

29/12/2009

Pjrm1470

Olhe, o máximo que posso lhe aconselhar, é se essa estrutura estiver dentro de um arquivo.xml. Coloque:
- TClientDataSet - TDataSource - TDBGrid   Ligue-os e carregue o arquivo xml no ClientDataSet. Obs.: Não dê "CreateDataSet"  > SeuClientDataSet.LoadFromFile('c:\SeuDir\Arquivo.xml');   Ele caregará todos os campos que você precisa saber. Toda a estrutura estará nele. Ou então você pode carregar os dados em modo de Design mesmo. Apenas clique botão direito no CDS (TClientDataSet), e selecione "Load From MyBase table...". Ficará mais facil de ver a estrutura.   Att, pjrm1470
Responder