posts - 315, comments - 268, trackbacks - 15

My Links

News

View Pietro Libro's profile on LinkedIn

DomusDotNet
   DomusDotNet

Pietro Libro

Tag Cloud

Article Categories

Archives

Post Categories

Blogs amici

Links

Contenuto di un file HTML e Microsoft XML

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
        'Carico il contenuto del file con la lista non ordina HTML
        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
 
            'Cerco il nodo interessato
            Dim nodeList As MSXML2.IXMLDOMNodeList = doc.selectNodes("//li[@id='Eventi']")
 
            If (nodeList.length > 0) Then
                'Ha trovato il nodo
                root = nodeList.item(0)
 
                'Recupero il testo del link
                Dim testoLink As String = root.text
                'Creo  l'attributo Class....
                Dim attributoClass As MSXML2.IXMLDOMAttribute = doc.createAttribute("class")
                '...imposto il valore dell'attributo....
                attributoClass.value = "Selected"
                'aggiungo l'attributo create alla collezione di attributi del nodo...
                root.attributes.setNamedItem(attributoClass)
                'Recupero il nodo <span>...</span>...
                Dim nodoSpan As MSXML2.IXMLDOMNode = root.childNodes(0).childNodes(0)
                '... lo sostituisco al nodo <a href=....></a>
                root.replaceChild(nodoSpan, root.childNodes(0))
            End If
 
            'Visualizzo il contenuto del file modificato...
            MessageBox.Show(doc.xml)
        Else
            MessageBox.Show("Impossibile leggere il contenuto del file")
        End If

Print | posted on lunedì 20 agosto 2007 06:48 | Filed Under [ Visual Basic .Net Varie ed eventuali ]

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET