Mega Code Archive

 
Categories / VB.Net / XML
 

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