2013-11-18 4 views
1
<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 и изменить все значения узлов, которые должны быть изменены, это будет динамически выбран, а затем сохранить документитерация по всем узлам файла xml

Моя рекурсивную подпрограмму похожа на this

однако когда он сталкивается с <TelephoneNumbers>, он не углубляется глубже, чтобы получить отдельные элементы.

Моя сноски к рекурсии через 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 и изменить некоторые vlues [имена узлов не известно], а затем сохраните документ обновления.

+1

Можете ли вы разместить свой существующий код? – Szymon

+0

I treid, SO говорит мне, что у меня слишком много кода. – user1361914

ответ

1

Ваш код не входит в <TelephoneNumbers> из-за линии

If (node.ChildNodes.Count > 1) Then 

Там только один дочерний элемент здесь, так что он останавливается на этом уровне.

+0

любая рекомендация обойти его? – user1361914

+1

Изменить '(node.ChildNodes.Count> 1)' to '(node.ChildNodes.Count> 0)'. – IAbstract

+0

Выполнение этой рекурсии выходит из первого узла и не проходит через остальную часть документа. – user1361914

Смежные вопросы