ToolCollection/ToolCollection/ClassxmlZugriff.vb
Digital Data - Marlon Schreiber 3a25947af0 MS
2019-02-05 18:49:13 +01:00

125 lines
6.0 KiB
VB.net

Imports System.Xml
Imports DigitalData.Modules.Logging
Public Class ClassxmlZugriff
Private email As New ClassNIEmail
Private Shared _Logger As DigitalData.Modules.Logging.Logger
'führt eine SQL-Anweisung auf der DB aus
Public Function GetValueFromLuratechxml(ByVal vfilename As String, ByVal vfullfilepath As String, ByVal KnotenString As String, ByVal Profil As String) '
Try
_Logger.Info("Index-Filename: " & vfilename)
' die nötigen Variablen definieren
Dim _xmlDoc As New XmlDocument
_Logger.Info("Auslesen des Indexwertes aus Indexfile: " & vfilename)
_xmlDoc.Load(vfullfilepath)
Dim _node As XmlNode
If KnotenString.Contains("FormDesignName") Then
KnotenString = KnotenString.Replace("|", "/")
_node = _xmlDoc.SelectSingleNode(KnotenString)
If _node Is Nothing Then
_Logger.Warn("ACHTUNG bei File: " & vfilename)
_Logger.Warn("ACHTUNG der Knoten " & KnotenString & " existiert nicht!")
Return Nothing
Else
' MsgBox(_node.InnerText, MsgBoxStyle.Information, file.Name)
_Logger.Info("Auslesen aus Knoten: " & KnotenString)
_Logger.Info("Gelesener Wert: " & _node.InnerText)
Return _node.InnerText
End If
Else
Dim strTeile() As String = KnotenString.Split("|")
Dim nodeformresults As String
If vfullfilepath.EndsWith(".xffres") Then
nodeformresults = "FreeFormFieldResultBase"
ElseIf vfullfilepath.EndsWith(".xfres") Then
nodeformresults = "FieldResult"
End If
' Den Freiform-Ergebnis Knoten auswählen
Dim child_nodes As XmlNodeList = _xmlDoc.GetElementsByTagName(nodeformresults)
' Überprüfen ob das aktuelle Child den Namen enthält
For Each child As XmlNode In child_nodes
'MsgBox(child.InnerText)
Dim nodeName = child.SelectSingleNode("Name")
If nodeName.InnerText = strTeile(2) Then
If child.HasChildNodes Then
Dim REC_NODE As String
Select Case strTeile(1)
Case "TEXTVALUE"
REC_NODE = "FieldValues/FieldValue/String"
Case "CHECKMARK"
REC_NODE = "FieldValues/FieldValue/Checked"
End Select
Dim nodeErgebnis = child.SelectSingleNode(REC_NODE)
_Logger.Info("Auslesen aus Knoten: '" & child.Name & "'")
_Logger.Info("Gelesener Wert: '" & nodeErgebnis.InnerText & "'")
Return nodeErgebnis.InnerText
Else
_Logger.Warn("ACHTUNG bei File: " & vfilename)
_Logger.Warn("KEINEN CHILD-NODE für child_nodes gefunden")
Return Nothing
End If
End If
Next child
End If
Catch ex As Exception
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
_Logger.Error(ex)
If My.Settings.vNIMailsenden = True Then
email.Send_EMail("ClassxmlZugriff.GetValueFromLuratechxml " & "<br> Profil: " & Profil & "<br> Datei: " & vfullfilepath & "<br> Ein unbekannter Fehler: " & ex.Message)
End If
Return Nothing
End Try
End Function
Public Function GetValueFromZugFerdxml(ByVal vfilename As String, ByVal vfullfilepath As String, ByVal KnotenString As String, ByVal Profil As String)
Dim returnvalue
Try
_Logger.Info("Auslesen des Indexwertes aus Indexfile: " & vfilename)
Dim _xmlDoc As New XmlDocument
_xmlDoc.Load(vfullfilepath)
Dim xml As New Xml.XmlTextReader(vfilename)
Dim TreeNode As TreeNode
Dim elemList As XmlNodeList = _xmlDoc.GetElementsByTagName("ram:SellerTradeParty")
Dim i As Integer
For i = 0 To elemList.Count - 1
' Console.WriteLine(elemList(i).InnerXml)
For Each Xml_Node As XmlNode In elemList
Dim z As Integer
For z = 0 To Xml_Node.ChildNodes.Count - 1
If Xml_Node.ChildNodes(z).Name = "ram:Name" And KnotenString = "SellerTradeParty:Name" Then
Dim xmlvalue = Xml_Node.ChildNodes(z).InnerText
If xmlvalue.Contains(vbLf&) Then
xmlvalue = xmlvalue.Replace(vbLf&, "")
End If
If xmlvalue.Contains(Chr(13)) Then
Dim arr As String() = xmlvalue.Split(Chr(13))
End If
returnvalue = xmlvalue
ElseIf Xml_Node.ChildNodes(z).Name = "ram:SpecifiedTaxRegistration" And KnotenString = "SpecifiedTaxRegistration" Then
returnvalue = Xml_Node.ChildNodes(z).InnerText
End If
Next z
Next
Next i
Return returnvalue
Catch ex As Exception
' an dieser Stelle sollte jeder unvorhergesehene Fehler der Funktion abgefangen werden
_Logger.Error(ex)
If My.Settings.vNIMailsenden = True Then
email.Send_EMail("ClassxmlZugriff.GetValueFromZugFerdxml " & "<br> Profil: " & Profil & "<br> Datei: " & vfullfilepath & "<br> Ein unbekannter Fehler: " & ex.Message)
End If
Return Nothing
End Try
End Function
End Class