如何在xml文件中查找定位某个元素(按照类似于路径的格式:“bbb/ccc/ddd/”)。
不知XMLNode.FindNamespaceDecl()方法行不行。procedure TForm1.TreeView1DblClick(Sender: TObject);
Var
XMLDocument :IXMLDocument;
XMLNode,XMLNode1 :IXMLNode;
i:Integer;
begin
XMLDocument := TXMLDocument.Create( 'd:\aaa.xml' );
XMLDocument.Active := True;
XMLNode := XMLDocument.DocumentElement;
XMLNode := XMLNode.FindNamespaceDecl('????');
XMLNode := nil;
XMLDocument := nil;
end;
不知XMLNode.FindNamespaceDecl()方法行不行。procedure TForm1.TreeView1DblClick(Sender: TObject);
Var
XMLDocument :IXMLDocument;
XMLNode,XMLNode1 :IXMLNode;
i:Integer;
begin
XMLDocument := TXMLDocument.Create( 'd:\aaa.xml' );
XMLDocument.Active := True;
XMLNode := XMLDocument.DocumentElement;
XMLNode := XMLNode.FindNamespaceDecl('????');
XMLNode := nil;
XMLDocument := nil;
end;
解决方案 »
- 如何让子窗体显示在主窗体右侧,左侧是一个TreeView动态生成数据库里数据?
- 程序运行都出错
- QuickReport打印预览的问题,请高手帮忙。
- 过滤器不能打开是怎么回事?谢谢
- 想报培训班java、C#、网页制作、学哪个好?
- 高分求一个函数,Belong()函数。100分!谢谢。
- 初学者提问 -请问这个语句用delphi该怎么写?
- 为什么我插入数据时老是显示“fields xxx can not modified”?我的xxx字段类型为numeric
- DELPHI高手QQ号
- 拜托各位高手给小弟指点迷津,不甚感激!!
- 一个关于过滤的问题,如果有高招,那就来吧
- 现在还用DELPHI谋生的来报到!
FPath: String;
FRoot: IXMLDOMNode;
FNode: IXMLDOMNode;
begin
...
FPath := '//Budded/@Name'; FNode := FRoot.selectSingleNode(FPath);
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc;type
TForm1 = class(TForm)
XMLDocument1: TXMLDocument;
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
//k: integer;
nn : IXMLNode;
vv : IXMLNode;
kk : String;
k :IXMLNode;//IXMLNodeList;
c : Integer;
begin
{k := 8;
k := self.XMLDocument1.DocumentElement.ChildValues['checkdate'];
edit1.Text := Inttostr(k);
}//--添加节点
nn := XMLDocument1.DocumentElement.AddChild('header');
//nn.Attributes[''] := '';
vv := nn.AddChild('receiveflag');
vv.Text := 'jjjj';
vv := nn.AddChild('checkdate');
vv.Text := 'dfd';
XMLDocument1.SaveToFile('aa.xml');//-- 读取节点的值
k := XMLDocument1.DocumentElement.ChildNodes[0];
c := XMLDocument1.DocumentElement.ChildNodes.Count;//edit1.Text := inttostr(c)+XMLDocument1.FileName;
//showmessage(k);
edit1.Text := k.ChildNodes['receiveflag'].Text;
end;procedure TForm1.Button2Click(Sender: TObject);
var
a : TXMLDocument;
begin
a:=TXMLDocument.Create(self);
a.FileName:='http://localhost/xml/web.xml';
a.SaveToFile('xml.xml');
end;end.注意,记得把XMLDocument1组件的路径设置好。
谢谢各位,我现在是想在xml文件中检索,就是按照指定条件查找,如题。再帮帮忙,谢了先。
我按照你的方式写了一个事件,但总是有错误。
代码如下:
***************************
procedure TForm1.Button1Click(Sender: TObject);
var
FPath: String;
doc: IXMLDOMDocument;
FRoot: IXMLDOMNode;
FNode: IXMLDOMNode;
begin
doc := CoDOMDocument.create;
doc.load('H:\delphi\xml\books.xml');
froot:=doc.documentElement;
FPath := '/bookstore/book';
FNode := FRoot.selectSingleNode(FPath); ////此句有错误////
end;
***************************'H:\delphi\xml\books.xml'文件内容如下:
***************************
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
***************************