Ich habe eine XML-Datei mit dem Namen "books.xml" im Link "http://msdn.microsoft.com/en-us/library/ windows/desktop/ms762271 (v = V.85) .aspx ". Was meine Anforderung war, nur die <title>
von XML-Informationen als Knoten in der Strukturansicht anzuzeigen. Aber wenn ich die folgende Kodierung seine Anzeige alle Werte als Knoten wie "Katalog" als rootnode, Buch als Elternknoten für alle dann Autor, Titel, Genre usw. als Knoten aber ich will nur Wurzelknotenkatalog und -titel als Knoten nicht sogar Buch . Kann jede Stelle mir leiten, welche Modifikation i für die Anzeige von Titel in der exisitng Logik tun muß, alsWie filtert man Daten aus der XML-Datei zur Anzeige nur als Knoten in der Baumansicht ausgewählt
OpenFileDialog dlg = new OpenFileDialog();
dlg.Title = "Open XML document";
dlg.Filter = "XML Files (*.xml)|*.xml";
dlg.FileName = Application.StartupPath + "\\..\\..\\Sample.xml";
if (dlg.ShowDialog() == DialogResult.OK)
{
try
{
//Just a good practice -- change the cursor to a
//wait cursor while the nodes populate
this.Cursor = Cursors.WaitCursor;
//First, we'll load the Xml document
XmlDocument xDoc = new XmlDocument();
xDoc.Load(dlg.FileName);
//Now, clear out the treeview,
//and add the first (root) node
treeView1.Nodes.Clear();
treeView1.Nodes.Add(new
TreeNode(xDoc.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = (TreeNode)treeView1.Nodes[0];
//We make a call to addTreeNode,
//where we'll add all of our nodes
addTreeNode(xDoc.DocumentElement, tNode);
//Expand the treeview to show all nodes
treeView1.ExpandAll();
}
catch (XmlException xExc)
//Exception is thrown is there is an error in the Xml
{
MessageBox.Show(xExc.Message);
}
catch (Exception ex) //General exception
{
MessageBox.Show(ex.Message);
}
finally
{
this.Cursor = Cursors.Default; //Change the cursor back
}
}}
//This function is called recursively until all nodes are loaded
private void addTreeNode(XmlNode xmlNode, TreeNode treeNode)
{
XmlNode xNode;
TreeNode tNode;
XmlNodeList xNodeList;
if (xmlNode.HasChildNodes) //The current node has children
{
xNodeList = xmlNode.ChildNodes;
for (int x = 0; x <= xNodeList.Count - 1; x++)
//Loop through the child nodes
{
xNode = xmlNode.ChildNodes[x];
treeNode.Nodes.Add(new TreeNode(xNode.Name));
tNode = treeNode.Nodes[x];
addTreeNode(xNode, tNode);
}
}
else //No children, so add the outer xml (trimming off whitespace)
treeNode.Text = xmlNode.OuterXml.Trim();
}
versuchen [linqtoXML] (http://msdn.microsoft.com/en-us/library/bb387098.aspx) – pylover
Wenn jemand schreibt meinen exisitng Codierung, das wird hilfreich sein – michale