The following code loads XML nodes names and attributes name into my treeveiw control. I describe the problems towards the button.
For Each Record As XElement In doc...<record>
recordNode = TreeView1.Nodes.Add(Record.Name.ToString)
For Each Leader As XElement In Record...<leader>
leaderNode = recordNode.Nodes.Add(Leader.Name.ToString)
For Each Controlfield As XElement In Record...<controlfield>
controlfieldNode = recordNode.Nodes.Add(Controlfield.@tag.ToString)
For Each Datafield As XElement In Record...<datafield>
datafielNode = recordNode.Nodes.Add(Datafield.@tag.ToString)
Next
Next
Next
Next
XML code:
<collection>
<record>
<leader>03439cam 2200481Ia 4500</leader>
<controlfield tag="001">648147285</controlfield>
<controlfield tag="003">SIRSI</controlfield>
<controlfield tag="005">20110301135853.0</controlfield>
<controlfield tag="008">100716s2010 cauab bm f000 0 eng d</controlfield>
<controlfield tag="007">cr b|||||a||||</controlfield>
<datafield tag="035" ind1=" " ind2=" ">
<subfield code="a">TEST</subfield>
</datafield>
<datafield tag="037" ind1=" " ind2=" ">
<subfield code="a">ADA524635</subfield>
<subfield code="b">DTI</subfield>
</datafield>
<datafield tag="043" ind1=" " ind2=" ">
<subfield code="a">n-us---</subfield>
</datafield>
<datafield tag="040" ind1=" " ind2=" ">
<subfield code="a">AD#</subfield>
<subfield code="c">AD#</subfield>
<subfield code="d">3D#</subfield>
</datafield>
<datafield tag="049" ind1=" " ind2=" ">
<subfield code="a">AD#A</subfield>
</datafield>
<datafield tag="090" ind1=" " ind2=" ">
<subfield code="a">:</subfield>
</datafield>
<datafield tag="100" ind1="1" ind2=" ">
<subfield code="a"></subfield>
</datafield>
<datafield tag="245" ind1="1" ind2="0">
<subfield code="a"></subfield>
</datafield>
<datafield tag="260" ind1=" " ind2=" ">
<subfield code="a">:</subfield>
<subfield code="b"></subfield>
<subfield code="c">2010.</subfield>
</datafield>
<datafield tag="300" ind1=" " ind2=" ">
<subfield code="a">xxiv, 87 p. :</subfield>
<subfield code="b">col. ill., col. maps ;</subfield>
<subfield code="c">28 cm.</subfield>
</datafield>
<datafield tag="500" ind1="a" ind2=" ">
<subfield code="a">Thesis Advisor(s): </subfield>
</datafield>
<datafield tag="500" ind1="b" ind2=" ">
<subfield code="a">"June 2010."</subfield>
</datafield>
<datafield tag="500" ind1="c" ind2=" ">
<subfield code="a">Author(s) </subfield>
</datafield>
<datafield tag="500" ind1=" " ind2=" ">
<subfield code="a">Description based on title screen as viewed on July 14, 2010.</subfield>
</datafield>
<datafield tag="500" ind1=" " ind2=" ">
<subfield code="a"></subfield></datafield>
<datafield tag="502" ind1=" " ind2=" ">
<subfield code="a">Thesis </subfield>
</datafield>
<datafield tag="504" ind1=" " ind2=" ">
<subfield code="a">Includes bibliographical references (p. 85-86).</subfield>
</datafield>
<datafield tag="506" ind1=" " ind2=" ">
<subfield code="a">"Approved for public release, distribution unlimited"--Cover.</subfield>
</datafield>
<datafield tag="520" ind1=" " ind2=" ">
<subfield code="a">t co</subfield></datafield>
<datafield tag="530" ind1=" " ind2=" ">
<subfield code="a">Also available in print.</subfield>
</datafield>
<datafield tag="538" ind1=" " ind2=" ">
<subfield code="a">Mode of access: World Wide Web.</subfield>
</datafield>
</record>
Example of output notice that I get only one controlfield node but I get all the datafieldnodes:
Leader
001
035
040
037
CONTINUES DOWN
The following code loads all my datafield nodes with no problems.
Output
035
.
.
538
For Each Datafield As XElement In Record...<datafield>
datafielNode = recordNode.Nodes.Add(Datafield.@tag.ToString)
The problem:
The following code which it should be similar to the previous only loads one control field node (the first one). If you see the XML sample I got 5 controlfield nodes.
Output:
001
For Each Controlfield As XElement In Record...<controlfield>
controlfieldNode = recordNode.Nodes.Add(Controlfield.@tag.ToString)
Appreciate your help.