XPathNavigator.ReplaceRange (System.Xml.XPath) replaces a range of sibling nodes
Imports System
Imports System.Xml
Imports System.Xml.XPath
Public Class MainClass
Public Shared Sub Main()
Dim document As XmlDocument = New XmlDocument()
document.Load("domainBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim manager As XmlNamespaceManager = New XmlNamespaceManager(document.NameTable)
manager.AddNamespace("bk", "http://www.domain.com/books")
Dim first As XPathNavigator = navigator.SelectSingleNode("/bk:bookstore/bk:book[1]", manager)
Dim last As XPathNavigator = navigator.SelectSingleNode("/bk:bookstore/bk:book[2]", manager)
navigator.MoveTo(first)
Dim newRange As XmlWriter = navigator.ReplaceRange(last)
newRange.WriteStartElement("book")
newRange.WriteAttributeString("genre", "")
newRange.WriteAttributeString("publicationdate", "2005-04-07")
newRange.WriteAttributeString("ISBN", "0")
newRange.WriteStartElement("title")
newRange.WriteString("New Book")
newRange.WriteEndElement()
newRange.WriteStartElement("author")
newRange.WriteStartElement("first-name")
newRange.WriteString("First Name")
newRange.WriteEndElement()
newRange.WriteStartElement("last-name")
newRange.WriteString("Last Name")
newRange.WriteEndElement()
newRange.WriteEndElement()
newRange.WriteElementString("price", "$0.00")
newRange.WriteEndElement()
newRange.Close()
Console.WriteLine(navigator.OuterXml)
End Sub
End Class
Related examples in the same category