假设
<?xml version="1.0" encoding="gb2312"?>
<index>
<node title="node1">
<node title="node2">
<node title="node3">
<node title="node4">
</node>
</node>
</node>
</node>
</index>
我想利用 /node1/node2/node3/node4 来直接访问 node4该怎么做呢?Delphi中的XML组建难道就不可以向 MSXML中的有 selectNodes/selectSingleNode 这些方法么?
<?xml version="1.0" encoding="gb2312"?>
<index>
<node title="node1">
<node title="node2">
<node title="node3">
<node title="node4">
</node>
</node>
</node>
</node>
</index>
我想利用 /node1/node2/node3/node4 来直接访问 node4该怎么做呢?Delphi中的XML组建难道就不可以向 MSXML中的有 selectNodes/selectSingleNode 这些方法么?
解决方案 »
- 关于setcomplete的严重问题
- 用winskin换肤后,打开文件对话框执行错误
- 请问如何判断Tedit内容是否以中文开头。。。?
- 两个TDateTime类型变量的差是什么结果?
- ACESS2000用BDE连接问题!
- 可否自制一个游戏M人机器,如何实现(可否举个例子)
- 使用Table的Locate方法的时候,表中明明有符合条件的记录,为何Table.Found为False?
- 请问各位高手??delphi和cb互调的问题??
- 關于在DBEdit中輸入日期型字符時怎樣避免其它字符輸入﹖
- 还要麻烦大家:我做了个简单的数据库,但.....
- 高手帮忙,调用地图数字化的文件的问题!
- 使用delphi6的help时提示是为此windows版本不支持的语言创建的,怎么解决
你使用XML Active控件吧
把M$ XMl Version 2.0导入
导入后有5个组件,就有此方法了。
var
noderef:IXMLDOMNodeRef;
root:IXMLDOMNode;
Node:IXMLDOMNode;
begin
XMLDocument1.Active:=true;
noderef:=XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
root:=noderef.GetXMLDOMNode;
node:=root.selectSingleNode('node1/node2/node3/node4');
if Assigned(node) then
begin
ShowMessage(node.attributes.getnameditem('title').text);
end;
end;
{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
var
noderef:IXMLDOMNodeRef;
root:IXMLDOMNode;
Node:IXMLDOMNode;
NodeList:IXMLDOMNodeList;
i,n:Integer;
begin
XMLDocument1.Active:=true;
noderef:=XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
root:=noderef.GetXMLDOMNode;
// node:=root.selectSingleNode('node1/node2/node3/node4');
NodeList:=root.selectNodes('node1/node2/node3/node4'); if Assigned(nodeList) then
begin
n:=NodeList.length;
for i := 0 to n-1 do
begin
Node:=NodeList.item[i];
ShowMessage(node.attributes.getnameditem('title').text);
end;
end;
end;