Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Clauido José

Lendo arquivo xml

Recommended Posts

Pessoal estou com um problema como posso controlar a quantidade de nos existente num carquivo xml, por exemplo num no pai tem 2 filhos, no outro ja vai ter apenas um e no outro 3 assim sucessivamente. Olha o arquivo xml

 

 

<arquivos>
<codigo nome="ASCG021">
<sequencia>
<nomeSequencia>ARQ CIP 01</nomeSequencia>
<recepcao>
<sta>OK</sta>
<hhmm>13:30</hhmm>
</recepcao>
<processamento>
<sta>OK</sta>
<hhmm>14:40</hhmm>
</processamento>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 02</nomeSequencia>
<recepcao>
<sta>CANCELADO</sta>
<hhmm>15:30</hhmm>
</recepcao>
<processamento>
<sta>OK</sta>
<hhmm>16:00</hhmm>
</processamento>
</sequencia>
</codigo>
<codigo nome="ASCG022">
<sequencia>
<nomeSequencia>ARQ CIP 01</nomeSequencia>
<recepcao>
<sta>OK</sta>
<hhmm>13:00</hhmm>
</recepcao>
<processamento>
<sta>PENDENTE</sta>
<hhmm>13:00</hhmm>
</processamento>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 02</nomeSequencia>
<recepcao>
<sta>OK</sta>
<hhmm>13:30</hhmm>
</recepcao>
<processamento>
<sta>OK</sta>
<hhmm>13:40</hhmm>
</processamento>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 03</nomeSequencia>
<recepcao>
<sta>OK</sta>
<hhmm>14:00</hhmm>
</recepcao>
<processamento>
<sta>PENDENTE</sta>
<hhmm>14:30</hhmm>
</processamento>
</sequencia>
</codigo>
<codigo nome="ASCG023">
<sequencia>
<nomeSequencia>CLAUDIO</nomeSequencia>
<processamento>
<sta>OK</sta>
<hhmm>10:00</hhmm>
</processamento>
<retcli>
<envio>SIM</envio>
<hhmm>15:00</hhmm>
<retorno>NÃO</retorno>
<hhmm>15:50</hhmm>
</retcli>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 02</nomeSequencia>
<processamento>
<sta>PENDENTE</sta>
<hhmm>09:20</hhmm>
</processamento>
<retcli>
<envio>OK</envio>
<hhmm>16:00</hhmm>
<retorno>SIM</retorno>
<hhmm>17:30</hhmm>
</retcli>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 02</nomeSequencia>
<processamento>
<sta>OK</sta>
<hhmm>10:10</hhmm>
</processamento>
<retcli>
<envio>sim</envio>
<hhmm>11:20</hhmm>
<retorno>não</retorno>
<hhmm>12:00</hhmm>
</retcli>
</sequencia>
</codigo>
<codigo nome="ASCG024">
<sequencia>
<nomeSequencia>ARQ CIP 03</nomeSequencia>
<retorno>
<sta>OK</sta>
<hhmm>09:00</hhmm>
</retorno>
<processamento>
<sta>ok</sta>
<hhmm>10:00</hhmm>
</processamento>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 05</nomeSequencia>
<recepcao>
<sta>CANCELADO</sta>
<hhmm>10:00</hhmm>
</recepcao>
<processamento>
<sta>PENDENTE</sta>
<hhmm>11:20</hhmm>
</processamento>
</sequencia>
</codigo>
<codigo nome="ASCG025">
<sequencia>
<nomeSequencia>ARQ CIP 011</nomeSequencia>
<processamento>
<sta>OK</sta>
<hhmm>15:00</hhmm>
</processamento>
<retcli>
<envio>SIM</envio>
<hhmm>14:00</hhmm>
<retorno>NÃO</retorno>
<hhmm>14:30</hhmm>
</retcli>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 012</nomeSequencia>
<processamento>
<sta>PENDENTE</sta>
<hhmm>15:00</hhmm>
</processamento>
<retcli>
<envio>SIM</envio>
<hhmm>14:00</hhmm>
<retorno>NÃO</retorno>
<hhmm>14:30</hhmm>
</retcli>
</sequencia>
<sequencia>
<nomeSequencia>ARQ CIP 13</nomeSequencia>
<processamento>PROCESSAMENTO
<sta>STA</sta>
<hhmm>HH:MM</hhmm>
</processamento>
<retcli>
<envio>SIM</envio>
<hhmm>14:00</hhmm>
<retorno>NÃO</retorno>
<hhmm>14:30</hhmm>
</retcli>
</sequencia>
</codigo>
</arquivos>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

É ASP clássico ou ASP.NET? Se for o segundo, você pode usar o System.Xml.Linq, com ele fica bem fácil de manipular os arquivos XML.

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui resolver vejam o estou postando o código para quem precisar.


<%
dim sTitulo
dim i,s
dim ObjXML, rootElement,objNodeFluxo,objElemento
dim Qtde
dim nomeArquivo, raiz
Dim objResultado(5), myXml1,  myXml2

nomeArquivo=Server.Mappath("arquivo_cip.xml")

Set ObjXML = Server.CreateObject("Microsoft.XMLDOM")

ObjXML.async = false

ObjXML.load(nomeArquivo)

if ObjXML.parseError <> 0 then

	response.write "Código do erro: " & ObjXML.parseError.errorCode & "<br>"
	response.write "Posição no arquivo: " & ObjXML.parseError.filepos & "<br>"
	response.write "Linha: " & ObjXML.parseError.line & "<br>"
	response.write "Posição na linha: " & ObjXML.parseError.linepos & "<br>"
	response.write "Descrição: " & ObjXML.parseError.reason & "<br>"
	response.write "Texto que causa o erro: " & ObjXML.parseError.srcText & "<br>"
	response.write "Url do arquivo com problemas: " & ObjXML.parseError.url
	
else
		
	set rootElement = objXML.documentElement

	'Procurar  quantidade de arquivos retornado
	set qtCodigo = ObjXML.getElementsByTagName("codigo")
	s=0
	for i = 0 to qtCodigo.length - 1
		'iterar na quantidade de sequncias
		qtdAtributos = rootElement.childNodes(i).getElementsByTagName("sequencia").length
		if rootElement.childNodes(i).attributes(s).text = "ASCG021" OR rootElement.childNodes(i).attributes(s).text = "ASCG022" or rootElement.childNodes(i).attributes(s).text = "ASCG024" then 
			response.write "<br>Codigo " & rootElement.childNodes(i).attributes(s).text & "<BR>"

			for j = 0 to qtdAtributos - 1
				'verifica quantidade de filhos dentro do nos sequencia		
				qtdfilhos = rootElement.childNodes(i).getElementsByTagName("sequencia").length
				
				'A propriedade documentElement refere-se à raiz do 		
				response.write("Sequencia: " & rootElement.childNodes.item(i).childNodes.item(j).childNodes.item(0).text & "Filhos: " & qtdFilhos & "<br>")
			
				qtdfilhos = qtdfilhos - 1

				for x = 0 to qtdfilhos 
					'A propriedade documentElement refere-se à raiz do 		
					 response.write(rootElement.childNodes.item(i).childNodes.item(j).childNodes.item(x).childNodes.item(s).text & "<br>")
				
					's= s+ 1	 
				next
			next
		end if	
	
		response.write("<br>")
	next
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.