Analyse einer XML In den Attributen, die für jeden untergeordneten Knoten mehrmals angezeigt werden, hat es. Wie kann der Code geändert werden, um sicherzustellen, dass die Attribute nur einmal angezeigt werden? Schieben Sie die Schleife einmal durch die Attribute aus der Schleife durch die untergeordneten Knoten. 🎜> Wenn Sie die Anzeige von Namespace -Attributen entfernen möchten, verwenden Sie die folgende Erweiterungsmethode:
<?xml version="1.0" encoding="utf-8"?> <DataConfiguration xmlns="abcefg12345" xmlns:xsi="12345abcefg" xsi:schemaLocation="12345abcefg12345abcefg"> <Hosts> <Sites> <Site Name="ss"> <Host Id="aa"> <Address Host="www.www.com"></Address> </Host> <Host Id="ee"> <Address Host="www.www.com"></Address> </Host> <Host Id="dd"> <Address Host="www.www.com"></Address> </Host> <Host Id="pp"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com/" /> </Host> <Host Id="ss"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="561"> <Address Host="www.www.com"></Address> </Host> </Site> <Site Name="hihi"> <Host Id="cc"> <Address Host="www.www.com"></Address> </Host> <Host Id="sdD"> <Address Host="www.www.com"></Address> </Host> <Host Id="8uj"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="222"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> </Site> </Sites> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> <Host Id="hhh"> <Address Scheme="ppp" Host="www.www.com" Path="www.www.com" /> </Host> </Hosts> <DataPools> <DataPool Id="sss" default="sure"> <DataGroup Id="sss" Parent="aaa" UserCanSelectHost="sure"> <HostId Parent="hhhh">I'm breaking here</HostId> <DataSources> <empty/> </DataSources> </DataGroup> <DataGroup Id="ccc" UserCanSelectHost="whynot"> <HostId>God I'm breaking here again, i hope you can fix me</HostId> <DataSources> <empty/> </DataSources> </DataGroup> <DataGroup Id="sss" UserCanSelectHost="yessure"> <HostId>cry face</HostId> <webfg displaygroup="sss" provider="sss">
Anzeige Attribut- und Elementtext auf allen Knoten:
private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode) { // Loop through the XML nodes until the leaf is reached. // Add the nodes to the TreeView during the looping process. if (inXmlNode.HasChildNodes) { //Check if the XmlNode has attributes foreach (XmlAttribute att in inXmlNode.Attributes) { inTreeNode.Text = inTreeNode.Text + " " + att.Name + ": " + att.Value; } var nodeList = inXmlNode.ChildNodes; for (int i = 0; i < nodeList.Count; i++) { var xNode = inXmlNode.ChildNodes[i]; var tNode = inTreeNode.Nodes[inTreeNode.Nodes.Add(new TreeNode(xNode.Name))]; AddNode(xNode, tNode); } } else { // Here you need to pull the data from the XmlNode based on the // type of node, whether attribute values are required, and so forth. inTreeNode.Text = (inXmlNode.OuterXml).Trim(); } treeView1.ExpandAll(); }
Das obige ist der detaillierte Inhalt vonWie verhindern Sie eine doppelte Attributanzeige, wenn XML mit Attributen in eine C# TreeView analysiert wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!