首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果XMLNode中不存在该属性,则创建它

如果XMLNode中不存在该属性,则创建它
EN

Stack Overflow用户
提问于 2020-03-19 17:09:01
回答 1查看 146关注 0票数 0

我一直在网上搜索如何在XMLNode中设置属性。我为XDocument找到了答案,但没有找到XMLNode的答案。我正在做的是检查id属性是否存在于一个元素中,如果它不存在,我需要创建它。到目前为止我还没有运气。setAttribute仅在XDocument中可用。

代码

代码语言:javascript
复制
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

XML示例

代码语言:javascript
复制
<action>ESC
  <acronym>
    <acronymTerm>HDD</acronymTerm>
    <acronymDefinition>High Definition</acronymDefinition>
  </acronym>
</action>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-19 17:45:56

从这样的事情开始:

代码语言:javascript
复制
    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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60761938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档