giovedì 2 agosto 2018

ricerca parametri pseudo xml

'

'  ricerca parametri

'  gestione di un file parametri

'  ricerca tramite espressione regolare.

'  il file parametri ha la struttura similare ad  un file xml.

'  utilizzato per sopperire alle incoerenza dei file xml che non posso contenere tag numerici,

'

option explicit

'

dim htmlrisposta

'

htmlrisposta = cercaParametrihtml(182, "natura")

'

msgbox "finale: " & htmlrisposta

'

' ===============

'

'

' ===============

'

Function informazioni(precord, pcampo)

dim parchivio, strHTML

parchivio= '"C:\lavoro-2016\db-informazioni.xml"

parchivio= dbinformazioni

dim filesys, readfile, jtxt

set filesys = CreateObject ("Scripting.FileSystemObject")

 

If (filesys.FileExists(parchivio)) Then

      'msg = filespec & " esiste."

       set readfile = filesys.OpenTextFile(parchivio, 1, false)

       strHTML = readfile.ReadAll

Else

      'msg = filespec & " Non esiste."

       Set readfile = filesys.CreateTextFile(pArchivio, TRUE)

       '

       jtxt = "<vuoto>mancano paramenti</vuoto>"

       readfile.WriteLine(jtxt)

       strHTML = jtxt

End If

'

readfile.close

'

dim oRegex, criterio, trovatocampo, trovatorecord

set oRegex = CreateObject("vbscript.regexp")

oRegex.Global = 1

oRegex.Multiline = 1

oRegex.IgnoreCase = 1

'

trovatocampo = ""

trovatorecord = ""

' ----

criterio = "<" & precord & ">((?:.|\n|\r)*?)</" &  precord & ">"

'

oRegex.Pattern = criterio

If oRegex.Test(strHTML) = true Then

   trovatorecord = oRegex.Execute(strHTML).item(0).SubMatches.item(0)

else

   trovatorecord = ""

end if

' ---

criterio = "<" & pcampo & ">((?:.|\n|\r)*?)</" &  pcampo & ">"

'

oRegex.Pattern = criterio

If oRegex.Test(trovatorecord) = true Then

   trovatocampo = oRegex.Execute(trovatorecord).item(0).SubMatches.item(0)

else

   trovatocampo = ""

end if

'

informazioni = trovatocampo

'

end Function

'

'=====

'

‘ esempio del file db-informazioni.xml

<fatturaelettronica>

 

<dadef1>

 <natura>N1</natura>

 <RiferimentoNormativo>RiferimentoNormativo</RiferimentoNormativo> 

 <agenzia> N1 escluse ex art. 15 <agenzia>

</dadef1>

 

<dadef2>

 <natura>N2</natura>

 <RiferimentoNormativo>RiferimentoNormativo</RiferimentoNormativo> 

 <agenzia> N2 non soggette <agenzia>

</dadef2>

 

<182>

 <natura>N3</natura>

 <RiferimentoNormativo>Non imponibile per dichiarazione di intento art 8 2c dpr 633-72</RiferimentoNormativo>

 <agenzia>N3 non imponibili </agenzia>

</182>

 

<dadef3>

 <natura>N4</natura>

 <RiferimentoNormativo>RiferimentoNormativo</RiferimentoNormativo> 

 <agenzia> N4 esenti  <agenzia>

</dadef3>

 

<dadef4>

 <natura>N5</natura>

 <RiferimentoNormativo>RiferimentoNormativo</RiferimentoNormativo> 

 <agenzia> N5 regime del margine  <agenzia>

</dadef4>

 

<dadef5>

 <natura>N6</natura>

 <RiferimentoNormativo>RiferimentoNormativo</RiferimentoNormativo> 

 <agenzia> N6 inversione contabile (reverse charge)  <agenzia>

</dadef5>

 

 

 

</fatturaelettronica>

 

Nessun commento:

Posta un commento