Saya telah mencari di internet cara mengatur atribut dalam XMLNode. Saya telah menemukan jawaban untuk XDocument tetapi tidak untuk XMLNode. Apa yang saya lakukan adalah memeriksa apakah atribut id ada dalam suatu elemen jika tidak, saya perlu membuatnya. Sejauh ini saya belum beruntung. setAttribute hanya tersedia di XDocument.

Kode

Dim acronymList As XmlNodeList 'For getting the list of main/parent nodes
Dim acroterm As String

acronymList = newNode.GetElementsByTagName("acronym") 'Setting all <acronym> node to list   
For Each acronym As XmlNode In acronymList 'Looping through <acronym> node  
    If acronym.Attributes.GetNamedItem("id") IsNot Nothing Then
        existingAcro = acronym.Attributes("id").Value
        For Each childnode As XmlNode In acronym 'Looping all <acronym> childnodes 
            If childnode.Name = "acronymTerm" Then
                acroterm = childnode.InnerText
                'Convert acroterm characters to lowercase
                acroterm = acroterm.ToLower
                acroterm = acroterm + newFICount.ToString
                acronym.Attributes("id").Value = acroterm
                Debug.Write(vbCr + "old acronym ID: " + existingAcro + " /  new acronym ID " + acroterm)
                dictionary.Add(existingAcro, acroterm)

            End If
        Next
    Else
        ' Acronym Element does not have an ID assign it

        ' set id attribute to acroterm 

    End If
Next

Contoh XML

<action>ESC
  <acronym>
    <acronymTerm>HDD</acronymTerm>
    <acronymDefinition>High Definition</acronymDefinition>
  </acronym>
</action>
0
JenPann 19 Maret 2020, 20:09

1 menjawab

Jawaban Terbaik

Mulai dari sesuatu seperti ini:

    For Each acronym As XmlNode In acronymList
        If acronym.Attributes IsNot Nothing AndAlso
            acronym.Attributes.Count > 0 AndAlso
            acronym.Attributes.Item("id") IsNot Nothing Then
            ' do your code
            '.....
            '.....
            '.....
            '.....
            '.....
        Else
            Dim attrID As XmlAttribute = acronym.OwnerDocument.CreateAttribute("id")
            attrID.Value = "pippo_pluto_paperino"
            acronym.Attributes.Append(attrID)
            '.....
            '.....
            '.....
            '.....
            '.....
        End If
    Next
1
G3nt_M3caj 19 Maret 2020, 17:45