0

私のプロジェクトで問題が発生しています。VB.netを使用するWindowsMo​​bile5の基本的な財務マネージャーです。すべて正常に機能しますが、値がxmlに保存されると、別の値が保存されるときに上書きされます。これらの値を完全に上書きするのではなく、追加してほしい。

私のコード:

    Private Sub MenuItem3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click
    Dim writer As New XmlTextWriter("product.xml", Nothing)
    writer.WriteStartDocument(True)
    writer.Formatting = Formatting.Indented
    writer.Indentation = 2
    writer.WriteStartElement("Table")
    createNode(DateTimePicker.Text, Subject.Text, Category.Text, Amount.Text, PaymentLabel.Text, writer)
    writer.WriteEndElement()
    writer.WriteEndDocument()
    writer.Close()
End Sub
Private Sub createNode(ByVal eDate As String, ByVal eSubject As String, ByVal eCategory As String, ByVal eAmount As String, ByVal ePayment As String, ByVal writer As XmlTextWriter)
    writer.WriteStartElement("Expenses")
    writer.WriteStartElement("Date")
    writer.WriteString(eDate)
    writer.WriteEndElement()
    writer.WriteStartElement("Subject")
    writer.WriteString(eSubject)
    writer.WriteEndElement()
    writer.WriteStartElement("Category")
    writer.WriteString(eCategory)
    writer.WriteEndElement()
    writer.WriteStartElement("Amount")
    writer.WriteString(eAmount)
    writer.WriteEndElement()
    writer.WriteStartElement("Payment")
    writer.WriteString(ePayment)
    writer.WriteEndDocument()
End Sub
4

2 に答える 2

0

わかりました、このようなものはどうですか?

Private Sub MenuItem3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem3.Click

    Dim doc as New XmlDocument()
    doc.LoadXml("product.xml")

    Dim root as XmlNode = doc.DocumentElement
    Dim list as XmlNodeList = root.SelectNodes("Table")
    Dim table as XmlNode = list.Item(0)

    table.AppendChild(createNode(doc, ... , ... ))

    Dim writer As New XmlTextWriter(Console.Out)
    writer.Formatting = Formatting.Indented
    doc.WriteTo(writer)
    writer.Flush()

End Sub

Function createNode(XmlDocument doc, ByVal eDate As String, ByVal eSubject As String, ByVal eCategory As String, ByVal eAmount As String, ByVal ePayment As String, ByVal writer As XmlTextWriter) As XmlNode

    Dim element as XmlElement = doc.CreateElement("Expenses")

    Dim dateElement as XmlElement = doc.CreateElement("Date")
    dateElement.InnerText = eDate
    element.AppendChild(dateElement)

    ... similar code for the other sub-elements ...

    Return element

End Function
于 2012-04-14T12:23:27.680 に答える
0

XmlTextReaderXmlTextWriterそして最も重要なことに、XmlDocument、などを使用する必要がXmlElementあります。

を使用すると、ドキュメント オブジェクト モデルXmlDocumentを使用してドキュメントを操作することになります。これにより、XML ノードの削除、挿入、追加などが可能になります。

この方法で XML を読み書きするための指針については、このリンクを参照してください。ドキュメントの操作方法については、 XmlDocumentおよびSystem.Xml名前空間の公式ドキュメントを参照してください。

于 2012-04-14T03:47:19.320 に答える