125 lines
6.0 KiB
VB.net
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
|
|
|