Note that there are some explanatory texts on larger screens.

plurals
  1. POC# Populating treeview from my XML file, whilst filtering it for no repeats
    text
    copied!<p>I have the following XML file which gets populated programatically when documents are loaded into my program.</p> <p>What i want to be able to do is create a treeView hierachy using the "system", "subsystem" and "subsubsystem" elements of the XML file.</p> <p>Also, there will be many instances where the "system" or "subsystem" etc elements are repeated throughout my XML file, so i don't want these to be repeated in my treeView. I need a treeView containing all the system, subsystem and subsubsystem numbers but not repeating itself.</p> <pre><code>&lt;DMs&gt; &lt;dataModule&gt; &lt;DMC&gt;DMC-AJ-A-21-21-63-00ZZZ-254Z-B_001-00.XML&lt;/DMC&gt; &lt;techName&gt;Filter assy - blowing&lt;/techName&gt; &lt;infoName&gt;Clean mechanically&lt;/infoName&gt; &lt;system&gt;65&lt;/system&gt; &lt;subsystem&gt;32&lt;/subsystem&gt; &lt;subsubsystem&gt;12&lt;/subsubsystem&gt; &lt;status&gt;Checked In&lt;/status&gt; &lt;notes&gt;-&lt;/notes&gt; &lt;currentUser&gt;-&lt;/currentUser&gt; &lt;validator&gt;-&lt;/validator&gt; &lt;dateMod&gt;-&lt;/dateMod&gt; &lt;size&gt;-&lt;/size&gt; &lt;/dataModule&gt; &lt;dataModule&gt; &lt;DMC&gt;DMC-xx-A-21-21-63-00ZZZ-041Z-D_001-00.XML&lt;/DMC&gt; &lt;techName&gt;Filter assy&lt;/techName&gt; &lt;infoName&gt;Description of how it is made&lt;/infoName&gt; &lt;system&gt;21&lt;/system&gt; &lt;subsystem&gt;15&lt;/subsystem&gt; &lt;subsubsystem&gt;63&lt;/subsubsystem&gt; &lt;status&gt;Checked In&lt;/status&gt; &lt;notes&gt;-&lt;/notes&gt; &lt;currentUser&gt;-&lt;/currentUser&gt; &lt;validator&gt;-&lt;/validator&gt; &lt;dateMod&gt;-&lt;/dateMod&gt; &lt;size&gt;-&lt;/size&gt; &lt;/dataModule&gt; &lt;dataModule&gt; &lt;DMC&gt;DMC-xx-A-21-21-63-00ZZZ-042Z-D_001-00.XML&lt;/DMC&gt; &lt;techName&gt;Filter assy - blowing&lt;/techName&gt; &lt;infoName&gt;Description of function&lt;/infoName&gt; &lt;system&gt;21&lt;/system&gt; &lt;subsystem&gt;15&lt;/subsystem&gt; &lt;subsubsystem&gt;63&lt;/subsubsystem&gt; &lt;status&gt;Checked In&lt;/status&gt; &lt;notes&gt;-&lt;/notes&gt; &lt;currentUser&gt;-&lt;/currentUser&gt; &lt;validator&gt;-&lt;/validator&gt; &lt;dateMod&gt;-&lt;/dateMod&gt; &lt;size&gt;-&lt;/size&gt; &lt;/dataModule&gt; &lt;dataModule&gt; &lt;DMC&gt;DMC-xx-A-21-21-63-00ZZZ-066Z-D_001-00.XML&lt;/DMC&gt; &lt;techName&gt;Filter assy - blowing&lt;/techName&gt; &lt;infoName&gt;Support equipment and tools data&lt;/infoName&gt; &lt;system&gt;32&lt;/system&gt; &lt;subsystem&gt;10&lt;/subsystem&gt; &lt;subsubsystem&gt;01&lt;/subsubsystem&gt; &lt;status&gt;Checked In&lt;/status&gt; &lt;notes&gt;-&lt;/notes&gt; &lt;currentUser&gt;-&lt;/currentUser&gt; &lt;validator&gt;-&lt;/validator&gt; &lt;dateMod&gt;-&lt;/dateMod&gt; &lt;size&gt;-&lt;/size&gt; &lt;/dataModule&gt; &lt;/DMs&gt; </code></pre> <p>I've got the following method which I think i'm going in the right direction with, but it's getting the system numbers into a collection and sorting them to pass to my method which i'm struggling to know how to do.</p> <pre><code>public void buildTreeView(string sys, string subsys, string subsubsys) { try { TreeNode system = treeView1.Nodes.Add("System"); system.Nodes.Add(sys); TreeNode subsystem = system.Nodes.Add("Subsystem"); subsystem.Nodes.Add(subsys); TreeNode subsubsystem = subsystem.Nodes.Add("Subsubsystem"); subsubsystem.Nodes.Add(subsubsys); } catch (Exception e) { MessageBox.Show("error" + e); } } </code></pre> <p>Any help appreciated.</p> <p>What i'm looking to end up with is a chapter numbering system that i can drill down though in the treeView i.e.</p> <pre><code>+ System - 65 + Subsystem - 32 Subsystem - 68 + Subsubsystem - 01 Subsubsystem - 02 + System - 70 + Subsystem - 22 Subsystem - 30 + Subsubsystem - 01 </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload