【发布时间】:2012-04-05 00:14:00
【问题描述】:
我想使用 TTreeView 浏览 XML。要将树视图节点与具有属性的 XML 节点相关联,我使用了以下语法:
var tv: TTreeView; tn1, tn2: TTreeNode; xn: IXMLNode;
if xn.AttributeNodes.Count > 0 then
tn2 := tv.Items.AddChildObject( tn1, xn.NodeName, @xn )
else
tn2 := tv.Items.AddChild( tn1, xn.NodeName );
.. 以及在程序的后面:
var tv: TTreeView; pxn: ^IXMLNode; i: integer;
pxn := tv.Selected.Data;
for i := 0 to iXML.AttributeNodes.Count-1 do
ShowMessage ( pxn^.AttributeNodes[i].LocalName + ' = ' +
pxn^.AttributeNodes[i].Text );
这会导致异常。据我所知,这与我指向接口而不是对象的事实有关。
是否可以引用 XML 的实际对象而不是接口? 如果在树中插入或删除新的 XML 节点,此引用会发生什么情况?
或者还有其他直接的解决方案吗?
感谢所有帮助!
【问题讨论】:
标签: xml delphi interface treeview