XML對蘭花而言,是個很陌生的語言,避之唯恐不及啊!

但是卻處處有它,可惡,遇到需求,也是得硬著頭皮上了,不然是要學PS星人擺爛嗎?不然是要學PS星人擺爛嗎?不然是要學PS星人擺爛嗎?

→→→PS星人是誰?

 

 

 

需求:修改資料庫中已組好的XML

平台:ASP .NET VBSQL Server 2005

以下程式碼僅截取與主題相關部份。

 

 

 

 

 

假設XML的結構是:

<element>

<node1></node1>

<node2></node2>

<node3></node3>

</element>

 

 

 

Client Side 

<asp:TextBox ID="TextBoxNode1" runat="server"></asp:TextBox>

<asp:TextBox ID="TextBoxNode2" runat="server"></asp:TextBox>

<asp:TextBox ID="TextBoxNode3" runat="server"></asp:TextBox>

 

 

 

Server Side 

' 設計一個Function,將Client畫面選取的結果,取代原XML

Private Function MakeXML(ByVal OldXMLStr As String) As String

Dim xmlDoc As New XmlDocument

Dim element As XmlNode

Dim elementList As XmlNodeList

Dim newElement As XmlNode

 

xmlDoc.InnerXml = OldXMLStr ' 將原XML指定給xmlDoc

element = xmlDoc.FirstChild

elementList = element.ChildNodes

 

' 逐一比對節點名稱,修改節點的值

For i As Integer = 0 To elementList.Count 1

If elementList(i).Name = "node1" Then

elementList(i).InnerText = Me.TextBoxNode1.Text

End If

If elementList(i).Name = "node2" Then

elementList(i).InnerText = Me.TextBoxNode2.Text

End If

If elementList(i).Name = "node3" Then

elementList(i).InnerText = Me.TextBoxNode3.Text

End If

Next

 

' 新增節點

newElement = xmlDoc.CreateElement("node4")

newElement.InnerText = "node4"

element.AppendChild(newElement)

newElement = xmlDoc.CreateElement("node5")

newElement.InnerText = "node5"

element.AppendChild(newElement)

 

' 取代XML

xmlDoc.AppendChild(element)

Return xmlDoc.OuterXml

End Function

 

 

 

 

 

接下來,就可以自由發揮,設計承接新XML字串的程式,將新XML字串修改進資料庫。


arrow
arrow
    全站熱搜

    姊姊❉心得報告 發表在 痞客邦 留言(0) 人氣()