Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione XML (duplicazione nodi) [Lunghetto]

Ciao a tutti, qualcuno sa mica come fare a scrivere e leggere da nodi
duplicati in un XML
nel general dimensiono le variabili (XML 4.0)
Dim xDoc        As New DOMDocument
Dim xElement    As IXMLDOMElement
Dim xNewNode    As IXMLDOMElement
Dim xList       As IXMLDOMNode
io ho questa routine per creare un file XML
Private Function CreaXML(sPadre As String, sFiglio As String, sValFiglio
As String)
    Set xElement = xDoc.documentElement
    Set xList = xDoc.selectSingleNode(sPadre)
    Set xElement = xDoc.createNode(1, sFiglio, "")
    Set xNewNode = xList.appendChild(xElement)
    xNewNode.Text = sValFiglio
 
    Set xNewNode = Nothing
 
End Function
e la chiamo attraverso queste chiamate:
Call CreaXMLAxes("root/chart", "axes", "")
Call CreaXMLAxes("root/chart/axes", "InUso", "no")
Call CreaXMLAxes("root/chart/axes", "Asse", "xlValue")
ossia il file si presenterà cosi:
<root>
  <chart>
    <axes>
      <InUso>no</InUso>
      <Asse>Y</Asse>
    </axes>
  <chart>
<root>
 
il problema si presenta quando devo duplicare: per esempio il file deve
essere creato cosi:
<root>
  <chart>
    <axes>
      <InUso>no</InUso>
      <Asse>Y</Asse>
    </axes>
    <axes>
      <InUso>si</InUso>
      <Asse>X</Asse>
    </axes>
  <chart>
<root>
Come faccio a sapere dove scrivere il nodo <InUso> dato che <axes> non ha
attributi!?!??!?!?!?
grazie
Fabio
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 <root>
Per scrivere si potrebbe con il seguente:
in testa al modulo:
Imports System.Xml
 Dim strFile As String = "Prova.xml"
        Dim writer As New XmlTextWriter(strFile, System.Text.Encoding.UTF8)
        writer.WriteStartElement("Root")
        writer.WriteStartElement("Chart")
        writer.WriteStartElement("Axes")
        writer.WriteStartElement("InUso")
        writer.WriteString("UnoAA")
        writer.WriteEndElement()
        writer.WriteStartElement("Asse")
        writer.WriteString("DueAA")
        writer.WriteEndElement()
        writer.WriteEndElement()
        writer.WriteStartElement("Axes")
        writer.WriteStartElement("InUso")
        writer.WriteString("UnoBB")
        writer.WriteEndElement()
        writer.WriteStartElement("Asse")
        writer.WriteString("DueBB")
        writer.WriteEndElement()
        writer.WriteEndElement()
        writer.Flush()
        writer.Close()
giuseppeD

Aprendo per caso un'applicazione creata con VB6 ho notato che all'interno
del file è presente il percorso del progetto vbp
per es: D chr(0) : chr(0) \ chr(0) V chr(0) i chr(0) s chr(0) u chr(0) a
chr(0) l  chr(0) B chr(0) a chr(0) s chr(0) i chr(0) c chr(0) \ chr(0) P
chr(0) r chr(0) o chr(0) v chr(0) a chr(0) \ chr(0) P chr(0) r chr(0) o
chr(0) v chr(0) a chr(0) . chr(0) v chr(0) b chr(0) p
quindi alla fine si vede D : \ V i s u a l   B a s i c \ P r o v a \ P r o v
a . v b p che è leggibile da tutti
non c'è un modo per eliminare questa parte in modo veloce e non modificando
il file direttamente (l'ho fatto e funziona il programma sostituendo tutto
con X X X X X ecc.)??



