遍历xml文件的所有节点

时间:2013-11-18 19:01:30

标签: xml vb.net

<ArrayOfContacts xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="someschema">
 <Contact>
    <ID />
    <First_Name />
    <Last_Name />
    <TelephoneNumbers>
        <TelephoneNumber>
            <Number />
            <IsHome />
            <IsWork />
            <IsCell />
            <ReachableAfterHrs />
        </TelephoneNumber>
    </TelephoneNumbers>
 </Contact>
  <Contact>
    <ID />
    <First_Name />
    <Last_Name />
    <TelephoneNumbers>
        <TelephoneNumber>
            <Number />
            <IsHome />
            <IsWork />
            <IsCell />
            <ReachableAfterHrs />
        </TelephoneNumber>
    </TelephoneNumbers>
 </Contact>
</ArrayOfContacts>

看着this article。寻找一种好的方法来遍历整个xml并更改需要更改的所有节点值,这将动态选择,然后保存文档

我的递归例程类似于this

然而,当遇到<TelephoneNumbers>时,它不会更深入地获得单个元素。

我的fn通过XMl递送

Protected Sub RecurseXML(nodes As XmlNodeList)
    For Each node As XmlNode In nodes
        If (node.ChildNodes.Count > 1) Then
            RecurseXML(node.ChildNodes)
        Else
            node.InnerText = ChangeNodeValue()
        End If
    Next
End Sub

基本上,尝试读取整个XML并更改某些虚线[节点名称未知],然后保存更新文档。

1 个答案:

答案 0 :(得分:1)

由于行

,您的代码不会进入<TelephoneNumbers>
If (node.ChildNodes.Count > 1) Then

这里只有一个子元素,所以它停在那个级别。