本人已经把xml在treeview中显示出来,现在要求是
双击treeview 后,显示出该该点的值显示树的源代码:
var i: integer;
NewTreeNode: TTreeNode;
NodeText: string;
AttrNode: IXMLNode;
begin
//忽略文字节点和其他特殊情况
if not (XMlNode.NodeType = ntElement) then
Exit;
NodeText := XMLNode.NodeName;
if XMLNode.IsTextElement then
NodeText := NodeText + '=' + XMLNode.Text;
NewTreeNode := xmltree.Items.AddChild(TreeNode, NodeText);
//增加属性
for i := 0 to XMLNode.AttributeNodes.Count - 1 do
begin
AttrNode := XMLNode.AttributeNodes.Nodes[i];
xmltree.Items.AddChild(NewTreeNode, '[' + AttrNode.NodeName + '=''' + AttrNode.Text + ''']');
end;
//增加每一个子节点
if XMLNode.HasChildNodes then
for i := 0 to XMLNode.ChildNodes.Count - 1 do
MakeTree(XmlNode.ChildNodes.Nodes[i], NewTreeNode); //采用递归调用
end;
双击treeview 后,显示出该该点的值显示树的源代码:
var i: integer;
NewTreeNode: TTreeNode;
NodeText: string;
AttrNode: IXMLNode;
begin
//忽略文字节点和其他特殊情况
if not (XMlNode.NodeType = ntElement) then
Exit;
NodeText := XMLNode.NodeName;
if XMLNode.IsTextElement then
NodeText := NodeText + '=' + XMLNode.Text;
NewTreeNode := xmltree.Items.AddChild(TreeNode, NodeText);
//增加属性
for i := 0 to XMLNode.AttributeNodes.Count - 1 do
begin
AttrNode := XMLNode.AttributeNodes.Nodes[i];
xmltree.Items.AddChild(NewTreeNode, '[' + AttrNode.NodeName + '=''' + AttrNode.Text + ''']');
end;
//增加每一个子节点
if XMLNode.HasChildNodes then
for i := 0 to XMLNode.ChildNodes.Count - 1 do
MakeTree(XmlNode.ChildNodes.Nodes[i], NewTreeNode); //采用递归调用
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货