Hejsan Det finns många sätt att lösa detta på! Hejsan Lars.. Jag saknar deklarationen av dsa som du använder dig av. typ: dsa.ReadXml(FS)Skriva XML
jag har länge försökt skriva och uppdatera XML dokument med VB.NET.
Jag vill kunna lägga in element i en XML fil och sedan inte skriva över utan bara lägga till i slutet på dokumentet fler element i efterhand.
Någon som har lust att hjälpa mig på traven.
Har läst flertalet forum och på MSDN utan att lyckas.
Tack i förhand!
Mvh KristianSv: Skriva XML
Du kan t.ex. ladda in dokumentet till ett dataset och sedan jobba gentemot det, eller
ladda in dokumentet i en sträng och med några rader sträng manipulation uppnå
önskvärt resulat. Om du paste:ar in början av din xml-fil (ta med minst 1 post), så
kan jag skriva rutinen åt dig. Sen fattar du hur man gör.
Tjosan!
Sv:Skriva XML
jag har fått de att fungera hyffsat..
Nu återstår bara problemet att lyckas ta bort ett xml element ur mitt XML dokument.
Har du några tips på hur?
<?xml version="1.0" encoding="utf-8" ?>
- <AppInfo>
<Info>
<Header>Test1</Header>
<Text>TESTING!!!</Text>
<Date>2006-12-05 16:44:43</Date>
</Info>
- <Info>
<Header>Test2</Header>
<Text>TESTING AGAIN</Text>
<Date>2006-12-05 16:44:59</Date>
</Info>
</AppInfo>
'kolla om filen existerar
If Not File.Exists(Server.MapPath("") & "/" & "Info.xml") Then
Dim filename As String
filename = Server.MapPath("") & "/" & "Info.xml"
Dim myFileStream As New FileStream(filename, FileMode.Create)
Dim myXmlWriter As New XmlTextWriter(myFileStream, Encoding.UTF8)
myXmlWriter.WriteStartDocument()
dsa.WriteXml(myXmlWriter)
myXmlWriter.Close()
End If
'ladda en xml-fil
Dim xmldoc As XmlDocument = New XmlDocument()
xmldoc.Load(Server.MapPath("") & "/" & "Info.xml")
'skapa rotelementet
Dim newelem As XmlNode = xmldoc.CreateNode(XmlNodeType.Element, "Info", "")
xmldoc.DocumentElement.AppendChild(newelem)
'skapa element
Dim parentNode As XmlElement = xmldoc.CreateElement("Header")
xmldoc.DocumentElement.LastChild.AppendChild(parentNode)
Dim HeaderText As XmlText = xmldoc.CreateTextNode(txtHeader.Text)
parentNode.AppendChild(HeaderText)
'skapa nytt element
Dim childNode As XmlElement = xmldoc.CreateElement("Text")
xmldoc.DocumentElement.LastChild.AppendChild(childNode)
Dim UserText As XmlText = xmldoc.CreateTextNode(txtText.Text)
childNode.AppendChild(UserText)
Dim childNode2 As XmlElement = xmldoc.CreateElement("Date")
xmldoc.DocumentElement.LastChild.AppendChild(childNode2)
Dim DateText As XmlText = xmldoc.CreateTextNode(Now.ToString())
childNode2.AppendChild(DateText)Sv: Skriva XML
Jag antar att detta är ett dataset och då kan du ta bort rader med:
dsa.Tables(0).Rows.RemoveAt(1) ' tar bort rad 2
på samma sätt kan du lägga till nya rader:
Dim dr As DataRow = dsa.Tables(0).NewRow()
dr("Header") = "xxxxx"
dr("Text") = "Hoppsan"
dr("Date") = "2006-12-07 18:14:37"
dsa.Tables(0).Rows.InsertAt(dr, ds.Tables(0).Rows.Count + 1) ' gör att nya posten kommer sist
obs! glöm inte:
filename = Server.MapPath("") & "/" & "Info.xml"
dsa.WriteXml(filename)