Har testat flera exemple jag hittat på nätet och dom funkar väll men inte med XPath. Jag kan inget om XML i C# just för tillfället... BÖrjar precis titta på det själv men tänkte slänga in en länk här som du kan ta en titt på, kanske hjälper: Jag hitta ett bra sätt att binda men min Xpath funkar inte. En liten fråga som inte har med ditt problem att göra...Hur binder man XML till treeview?
Mina två enkla krav är:
* Skall kunna använda XPath
* Varja Item i XML filen har en egenskap Name som skall läggas till i varje Node
min XML ser ut på detta sättet
<agv Name="AGV">
<m300 Name="agv 300">
<in Name="In 574">
<s180 Name="Sk 180">Antal 11</s180>
<s181 Name="Sk 181">Antal 1</s181>
</in>
<tra Name="tran 094">
<s183 Name="Sk 183">Antal 3</s183>
</tra>
</m300>
</agv>
treeviewn skall alltså se ut så här
AGV
-agv 300
-In 574
-Sk 180
Antal 11
-Sk 181
Antal 1
-tran 094
-Sk 183
Antal 3
OBS! C#
Sv: Hur binder man XML till treeview?
http://www.c-sharpcorner.com/Code/2003/Sept/XMLTreeView.aspSv: Hur binder man XML till treeview?
detta är min XPath private string xpath_filter ="/agv/sa[@id='agv 35']";
private void Form1_Load(object sender, System.EventArgs e)
{
System.Xml.XmlDocument document = new System.Xml.XmlDataDocument();
document.Load(@"C:\Documents and Settings\ehel\Mina dokument\Visual Studio Projects\agv\fake.xml");
populateTreeControl(document.DocumentElement, treeView1.Nodes);
treeView1.Refresh();
}
Lägger till saker i min TreeView
private void populateTreeControl(System.Xml.XmlNode document, System.Windows.Forms.TreeNodeCollection nodes)
{
foreach (System.Xml.XmlNode node in document.ChildNodes)
{
System.Xml.XmlNode expr = node.SelectSingleNode(xpath_filter);
string text = (node.Value != null ? node.Value :
(node.Attributes != null &&
node.Attributes.Count > 0) ?
node.Attributes[0].Value : node.Name);
if (expr != null)
{
TreeNode new_child = new TreeNode(text);
nodes.Add(new_child);
populateTreeControl(node, new_child.Nodes);
}
}
}
Sv:Hur binder man XML till treeview?
agv = En automatisk truck (automated guided vehicle)
Eller???
/Alexander