| '***************************************************' 說明:Person類
 ' 作者:gwd 2002-11-06
 ' 引用:pub/constpub.asp
 '***************************************************
 Class Cls_Person PRivate m_intId ' Id,對應Person節點在Persons集合中的位置Private m_strName ' 姓名
 Private m_strNick ' 英文名
 Private m_strMobile ' 手機
 Private m_strTel ' 電話
 Private m_strEmail ' 電子郵件
 Private m_strQQ ' QQ號
 Private m_strCompany ' 所在公司
 Private m_strError ' 出錯信息
 ' 類初始化Private Sub Class_Initialize()
 m_strError = ""
 m_intId = -1
 End Sub
 ' 類釋放Private Sub Class_Terminate()
 m_strError = ""
 End Sub
 '-----讀寫各個屬性--------------------------- Public Property Get IdId = m_intId
 End Property
 Public Property Let Id(intId)m_intId = intId
 End Property
 Public Property Get NameName = m_strName
 End Property
 Public Property Let Name(strName)m_strName = strName
 End Property
 Public Property Get NickNick = m_strNick
 End Property
 Public Property Let Nick(strNick)m_strNick = strNick
 End Property
 Public Property Get MobileMobile = m_strMobile
 End Property
 Public Property Let Mobile(strMobile)m_strMobile = strMobile
 End Property
 Public Property Get TelTel = m_strTel
 End Property
 Public Property Let Tel(strTel)m_strTel = strTel
 End Property
 Public Property Get EmailEmail = m_strEmail
 End Property
 Public Property Let Email(strEmail)m_strEmail = strEmail
 End Property
 Public Property Get QQQQ = m_strQQ
 End Property
 Public Property Let QQ(strQQ)m_strQQ = strQQ
 End Property
 Public Property Get CompanyCompany = m_strCompany
 End Property
 Public Property Let Company(strCompany)m_strCompany = strCompany
 End Property
 '----------------------------------------------- ' 獲取錯誤信息Public Function GetLastError()
 GetLastError = m_strError
 End Function
 ' 私有方法,添加錯誤信息Private Sub AddErr(strEcho)
 m_strError = m_strError + "<Div CLASS=""alert"">" & strEcho & "</Div>"
 End Sub
 ' 清除錯誤信息Public Function ClearError()
 m_strError = ""
 End Function
 ' 從Xml中讀取指定節點的數據,并填充各個屬性' 需要首先設置Id
 Public Function GetInfoFromXml(objXmlDoc)
 Dim objNodeList
 Dim I
  ClearError  If objXmlDoc Is Nothing ThenGetInfoFromXml = False
 AddErr "Dom對象為空值"
 Exit Function
 End If
  If CStr(m_intId) = "-1" ThenGetInfoFromXml = False
 AddErr "未正確設置聯系人對象的ID屬性"
 Exit Function
 Else
 I = m_intId - 1 ' 要讀取得節點位置
 End If
  ' 選擇并讀取節點信息,賦予各個屬性Set objNodeList = objXmlDoc.getElementsByTagName("Person")
 If objNodeList.length - m_intId >= 0 Then
 On Error Resume Next
 m_strName = objNodeList(I).selectSingleNode("Name").Text
 m_strNick = objNodeList(I).selectSingleNode("Nick").Text
 m_strMobile = objNodeList(I).selectSingleNode("Mobile").Text
 m_strTel = objNodeList(I).selectSingleNode("Tel").Text
 m_strEmail = objNodeList(I).selectSingleNode("Email").Text
 m_strQQ = objNodeList(I).selectSingleNode("QQ").Text
 m_strCompany = objNodeList(I).selectSingleNode("Company").Text
 GetInfoFromXml = True
 Else
 GetInfoFromXml = False
 AddErr "獲取聯系信息發生錯誤"
 Set objNodeList = Nothing
 Exit Function
 End If
 Set objNodeList = Nothing
 End Function
 ' 添加信息到XML文件中' 需要首先設置好要填充的屬性
 Public Function AddToXml(objXmlDoc)
 Dim objPerson, objNode
  ClearError  If objXmlDoc Is Nothing ThenAddToXml = False
 AddErr "Dom對象為空值"
 Exit Function
 End If
  ' 創建Person節點Set objPerson = objXmlDoc.createElement("Person")
 objXmlDoc.documentElement.appendChild objPerson
  ' 創建各個子節點'-----------------------------------------------------
 Set objNode = objXmlDoc.createElement("Name")
 objNode.Text = m_strName
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Nick")objNode.Text = m_strNick
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Mobile")objNode.Text = m_strMobile
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Tel")objNode.Text = m_strTel
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Email")objNode.Text = m_strEmail
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("QQ")objNode.Text = m_strQQ
 objPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Company")objNode.Text = m_strCompany
 objPerson.appendChild objNode
 '-----------------------------------------------------
  Set objNode = NothingSet objPerson = Nothing
   On Error Resume NextobjXmlDoc.save Server.MapPath(C_XMLFILE) '保存XML文件
 If Err.Number = 0 Then
 AddToXml = True
 Else
 AddToXml = False
 AddErr Err.Description
 End If
 End Function
 ' 從XML文件中刪除數據' 需要首先設置Id
 Public Function DeleteFromXml(objXmlDoc)
 Dim objNodeList, objNode
  ClearError  If objXmlDoc Is Nothing ThenDeleteFromXml = False
 AddErr "Dom對象為空值"
 Exit Function
 End If
  If CStr(m_intId) = "-1" ThenDeleteFromXml = False
 AddErr "未正確設置聯系人對象的ID屬性"
 Exit Function
 End If
  Set objNodeList = objXmlDoc.getElementsByTagName("Person") If objNodeList.length - m_intId < 0 Then
 DeleteFromXml = False
 AddErr "未找到相應的聯系人"
 Set objNodeList = Nothing
 Exit Function
 End If
  On Error Resume NextSet objNode = objXmlDoc.documentElement.removeChild(objNodeList(intId-1))
 If objNode Is Nothing Then
 DeleteFromXml = False
 AddErr "刪除聯系人失敗"
 Set objNodeList = Nothing
 Exit Function
 Else
 objXmlDoc.save Server.MapPath(C_XMLFILE)
 End If
 Set objNode = Nothing
 Set objNodeList = Nothing
  If Err.Number = 0 ThenDeleteFromXml = True
 Else
 DeleteFromXml = False
 AddErr Err.Description
 End If
 End Function
 ' 修改XML文件中的數據' 需要首先設置好Id
 Public Function EditToXml(objXmlDoc)
 Dim objPersonList, objOldPerson, objNewPerson, objNode
  ClearError  If objXmlDoc Is Nothing ThenEditToXml = False
 AddErr "Dom對象為空值"
 Exit Function
 End If
  If CStr(m_intId) = "-1" ThenEditToXml = False
 AddErr "未正確設置聯系人對象的ID屬性"
 Exit Function
 End If
  Set objPersonList = objXmlDoc.getElementsByTagName("Person") If objPersonList.length - m_intId < 0 Then
 DeleteFromXml = False
 AddErr "未找到相應的聯系人"
 Set objPersonList = Nothing
 Exit Function
 End If
  Set objOldPerson = objPersonList(m_intId-1) ' 要修改的舊節點  Set objNewPerson = objXmlDoc.createElement("Person") ' 用來替換舊節點的新節點Set objNode = objXmlDoc.createElement("Name")
 objNode.Text = m_strName
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Nick")objNode.Text = m_strNick
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Mobile")objNode.Text = m_strMobile
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Tel")objNode.Text = m_strTel
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Email")objNode.Text = m_strEmail
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("QQ")objNode.Text = m_strQQ
 objNewPerson.appendChild objNode
  Set objNode = objXmlDoc.createElement("Company")objNode.Text = m_strCompany
 objNewPerson.appendChild objNode
  On Error Resume Next' 進行替換
 Set objNode = objXmlDoc.documentElement.replaceChild(objNewPerson, objOldPerson)
 If objNode Is Nothing Then
 EditToXml = False
 AddErr "修改聯系人失敗"
 Set objOldPerosn = Nothing
 Set objNewPerson = Nothing
 Set objPersonList = Nothing
 Exit Function
 Else
 objXmlDoc.save Server.MapPath(C_XMLFILE)
 End If
 Set objOldPerson = NothingSet objNewPerson = Nothing
 Set objPersonList = Nothing
 If Err.Number = 0 ThenEditToXml = True
 Else
 EditToXml = False
 AddErr Err.Description
 End If
 End Function
 End Class |