Ignore:
Timestamp:
Mar 13, 2008, 9:44:51 AM (17 years ago)
Author:
dai
Message:

XmlSerializer.Deserializeメソッドを実装(仮実装なため、数値メンバのシリアライズのみに留まっている)。
XmlNode.LastChildメソッドを追加。
XmlNode.NextSiblingメソッドを追加。
XmlNode.PreviouseSiblingメソッドを追加。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Include/Classes/System/Xml/XmlNode.ab

    r455 r475  
    2828Class XmlNode
    2929
     30    nodeType As XmlNodeType
    3031    attributes As XmlAttributeCollection
    3132    childNodes As XmlNodeList
     
    3536    ownerDocument As XmlDocument
    3637    value As String
    37     nodeType As XmlNodeType
     38    previousSibling As XmlNode
     39    nextSibling As XmlNode
    3840
    3941Public
     
    4951        This.ownerDocument = doc
    5052        This.value = Nothing
     53        This.previousSibling = Nothing
     54        This.nextSibling = Nothing
    5155
    5256        attributes = New XmlAttributeCollection
     
    6468        This.ownerDocument = doc
    6569        This.value = data
     70        This.previousSibling = Nothing
     71        This.nextSibling = Nothing
    6672
    6773        attributes = New XmlAttributeCollection
     
    114120
    115121    /*!
     122    @brief  ノードの最後の子を取得します。
     123    */
     124    Virtual Function LastChild() As XmlNode
     125        If childNodes.Count = 0 Then
     126            ' 子ノードが1つもないときはNothingを返す
     127            Return Nothing
     128        End If
     129        Return childNodes[childNodes.Count-1]
     130    End Function
     131
     132    /*!
    116133    @brief  ノードのローカル名を取得します。
    117134    @return ノードのローカル名。
     
    130147
    131148    /*!
     149    @brief  このノードの直後のノードを取得します。
     150    @return このノードの直後のノード。
     151    */
     152    Virtual Function NextSibling() As XmlNode
     153        Return nextSibling
     154    End Function
     155
     156    /*!
    132157    @brief  このノードのノードタイプを取得します。
    133158    @return このノードのノードタイプ。
     
    159184    Virtual Function Prefix() As String
    160185        return prefix
     186    End Function
     187
     188    /*!
     189    @brief  このノードの直前のノードを取得します。
     190    @return このノードの直前のノード。
     191    */
     192    Virtual Function PreviousSibling() As XmlNode
     193        Return previousSibling
    161194    End Function
    162195
     
    186219    */
    187220    Virtual Function AppendChild( newChild As XmlNode ) As XmlNode
     221        Dim lastChild = This.LastChild
    188222        childNodes.Add( newChild )
     223
     224        If Not ActiveBasic.IsNothing( lastChild ) Then
     225            ' 前後の兄弟要素を指定
     226            lastChild.nextSibling = newChild
     227            newChild.previousSibling = lastChild
     228        End If
     229
    189230        Return newChild
    190231    End Function
Note: See TracChangeset for help on using the changeset viewer.