我一直在网上搜索如何在XMLNode中设置属性。我为XDocument找到了答案,但没有找到XMLNode的答案。我正在做的是检查id属性是否存在于一个元素中,如果它不存在,我需要创建它。到目前为止我还没有运气。setAttribute仅在XDocument中可用。
代码
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
NextXML示例
<action>ESC
<acronym>
<acronymTerm>HDD</acronymTerm>
<acronymDefinition>High Definition</acronymDefinition>
</acronym>
</action>发布于 2020-03-19 17:45:56
从这样的事情开始:
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
Nexthttps://stackoverflow.com/questions/60761938
复制相似问题