Supponiamo di avere un file (html) contenente una lista non ordinata del tipo
<ul>
<li id="Eventi"><a href="#"><span>Eventi</span></a></li>
<li id="Notizie"><a href="#"><span>Notizie</span></a></li>
<li id="NewsLetter"><a href="#"><span>NewsLetter</span></a>
<ul>
<li id="Sottomenu"><a href="#"><span>Sottomenu</span></a></li>
</ul>
</li>
<li id="Agenzie"><a href="#"><span>Agenzie</span></a></li>
</ul>
e di voler modificare (a run-time) il contenuto di uno degli elementi "<li>" . Supponiamo di voler trovare l'elemento con "id" uguale a "Eventi",
di voler aggiungere un nuovo attributo (class) con valore "Selected" e di voler eliminare il nodo <a href....></a> e lasciare il nodo
<span>Evento</span>.E' possibile fare quanto detto in modo molto semplice utilizzando l'oggetto COM Microsoft XML (Versione 3.0 o superiore)
e scrivendo il seguente codice:
Dim doc As New MSXML2.DOMDocument
Dim xmlString As String = System.IO.File.ReadAllText("C:\Inetpub\wwwroot\DomExample\test.ssi")
If (doc.loadXML(xmlString)) Then
Dim testoNodo As String = String.Empty
Dim nodo As MSXML2.IXMLDOMNode = Nothing
Dim root As MSXML2.IXMLDOMNode = Nothing
Dim nodeList As MSXML2.IXMLDOMNodeList = doc.selectNodes("//li[@id='Eventi']")
If (nodeList.length > 0) Then
root = nodeList.item(0)
Dim testoLink As String = root.text
Dim attributoClass As MSXML2.IXMLDOMAttribute = doc.createAttribute("class")
attributoClass.value = "Selected"
root.attributes.setNamedItem(attributoClass)
Dim nodoSpan As MSXML2.IXMLDOMNode = root.childNodes(0).childNodes(0)
root.replaceChild(nodoSpan, root.childNodes(0))
End If
MessageBox.Show(doc.xml)
Else
MessageBox.Show("Impossibile leggere il contenuto del file")
End If