145 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
| Imports System.Xml
 | |
| 
 | |
| Public Class ArinXML
 | |
|     Private File As String
 | |
|     Private vDocu As XmlDocument = Nothing
 | |
|     Private nsmgr As XmlNamespaceManager
 | |
|     Public Root As XmlElement
 | |
| 
 | |
|     Public ReadOnly Property Docu() As XmlDocument
 | |
|         Get
 | |
|             Return Me.vDocu
 | |
|         End Get
 | |
|     End Property
 | |
| 
 | |
|     Public ReadOnly Property Filename As String
 | |
|         Get
 | |
|             Return Me.File
 | |
|         End Get
 | |
|     End Property
 | |
| 
 | |
|     Public Sub New(ByVal Filename As String)
 | |
|         Me.File = Filename
 | |
|         If Exist() Then '//파일이 존재하면 도큐먼트반환
 | |
|             Me.vDocu = New XmlDocument
 | |
|             nsmgr = New XmlNamespaceManager(New Xml.NameTable)
 | |
|             nsmgr.AddNamespace("x", "http://tindevil.com")
 | |
|             Try
 | |
|                 Me.vDocu.Load(Filename)
 | |
|                 Root = vDocu.DocumentElement
 | |
|             Catch ex As Exception
 | |
|                 Me.vDocu = Nothing
 | |
|                 Me.Root = Nothing
 | |
|             End Try
 | |
|         End If
 | |
|     End Sub
 | |
| 
 | |
|     Public Sub New(ByVal docu As Xml.XmlDocument)
 | |
|         Me.vDocu = docu
 | |
|         Me.File = My.Application.Info.DirectoryPath & "\temp.xml"
 | |
|         nsmgr = New XmlNamespaceManager(New Xml.NameTable)
 | |
|         nsmgr.AddNamespace("x", "http://tindevil.com")
 | |
|         Root = vDocu.DocumentElement
 | |
|     End Sub
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' 파일존재여부
 | |
|     ''' </summary>
 | |
|     ''' <returns></returns>
 | |
|     ''' <remarks></remarks>
 | |
|     Public Function Exist() As Boolean
 | |
|         If Not vDocu Is Nothing Then Return True
 | |
|         Return System.IO.File.Exists(Me.File)
 | |
|     End Function
 | |
| 
 | |
| 
 | |
|     Public Sub CreateFile()
 | |
|         '//주어진파일명으로 기본파일을 생성한다.
 | |
|         Dim NewXml As New System.Text.StringBuilder
 | |
|         NewXml.AppendLine("<?xml version='1.0' encoding='KSC5601'?>")
 | |
|         NewXml.AppendLine("<tindevil xmlns='http://tindevil.com'> ")
 | |
|         NewXml.AppendLine("</tindevil>")
 | |
|         If System.IO.File.Exists(Me.File) Then System.IO.File.Delete(Me.File)
 | |
|         My.Computer.FileSystem.WriteAllText(Me.File, NewXml.ToString.Replace("'", Chr(&H22)), False)
 | |
|         Me.vDocu = New XmlDocument
 | |
|         Me.vDocu.Load(Me.File)
 | |
|         nsmgr = New XmlNamespaceManager(New Xml.NameTable)
 | |
|         nsmgr.AddNamespace("x", "http://tindevil.com")
 | |
|         Root = vDocu.DocumentElement
 | |
|     End Sub
 | |
| 
 | |
|     Public Function Read(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As String = "", Optional ByVal Nullvalue As String = "") As String '//변수초기화
 | |
|         '//파일이없을경우 빈값을 반환합니다.
 | |
|         If Exist() = False Then Return ""
 | |
|         Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
 | |
|         If L Is Nothing Then Return ""
 | |
|         Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
 | |
|         If C Is Nothing Then Return ""
 | |
|         Return C.InnerText
 | |
|     End Function
 | |
| 
 | |
|     Public Function Get_NameSpace() As XmlNamespaceManager
 | |
|         Return Me.nsmgr
 | |
|     End Function
 | |
|     Public Function NS() As XmlNamespaceManager
 | |
|         Return Me.nsmgr
 | |
|     End Function
 | |
| 
 | |
|     Public Function CreateElement(ByVal name As String) As XmlElement
 | |
|         Return Me.Docu.CreateElement(name, Me.NS.DefaultNamespace)
 | |
|     End Function
 | |
|     Public Function GetNode(ByVal appkey As String) As XmlElement
 | |
|         '//파일이없을경우 빈값을 반환합니다.
 | |
|         If Docu Is Nothing Then Return Nothing
 | |
|         Return Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
 | |
|     End Function
 | |
|     Public Function GetNodes(ByVal appkey As String) As Xml.XmlNodeList
 | |
|         '//파일이없을경우 빈값을 반환합니다.
 | |
|         If Docu Is Nothing Then Return Nothing
 | |
|         Dim L As XmlNodeList = Me.Root.SelectNodes(appkey, nsmgr) '//appkey를 먼저 조회한다.
 | |
|         Return L
 | |
|     End Function
 | |
| 
 | |
|     Public Property Data(ByVal appkey As String, ByVal subkey As String, Optional ByVal defaltvalue As Object = "", Optional ByVal trim As Boolean = False) As String
 | |
|         Get
 | |
|             '//파일이없을경우 빈값을 반환합니다.
 | |
|             If Exist() = False Then Return defaltvalue
 | |
|             Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
 | |
|             If L Is Nothing Then Return defaltvalue
 | |
|             Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
 | |
|             If C Is Nothing Then Return defaltvalue
 | |
|             If trim Then
 | |
|                 Return C.InnerText.Trim
 | |
|             Else
 | |
|                 Return C.InnerText
 | |
|             End If
 | |
| 
 | |
|         End Get
 | |
|         Set(ByVal value As String)
 | |
|             '//파일이없을경우 빈값을 반환합니다.
 | |
| 
 | |
|             If Exist() = False Then Return
 | |
|             Dim L As XmlElement = Me.Root.SelectSingleNode(appkey, nsmgr) '//appkey를 먼저 조회한다.
 | |
|             If L Is Nothing Then '//만들어야한다.
 | |
|                 L = Me.Docu.CreateElement(appkey)
 | |
|                 Me.Root.AppendChild(L)
 | |
|             End If
 | |
|             Dim C As XmlElement = L.SelectSingleNode(subkey, nsmgr)
 | |
|             If C Is Nothing Then '//만들어야한다.
 | |
|                 C = Me.Docu.CreateElement(subkey)
 | |
|                 C.InnerText = value
 | |
|                 L.AppendChild(C)
 | |
|             Else
 | |
|                 C.InnerText = value
 | |
|             End If
 | |
|             Me.Docu.Save(Me.File)
 | |
|             'MsgBox(value)
 | |
|         End Set
 | |
|     End Property
 | |
| 
 | |
|     Public Sub Save()
 | |
|         Me.Docu.Save(Me.File)
 | |
|     End Sub
 | |
| 
 | |
| End Class
 | 
