今天把原先codelphi的blog迁移过来了!delphi+xml
2006-12-19 17:48
281 查看
第一篇
使用原生ms的xml解析器
2004-09-02
Procedure TFormRes.btnrunClick(Sender: TObject);
Var
SelectIntf: IDOMNodeSelect;
listIntf: IDOMNodeList;
pathstr, ss,ss1: String;
n1: integer;
Begin
Try
res := 0;
edtres.Text := ‘’;
If paramstr(1) <> ‘’ Then
Begin
pathstr := ‘//Content’; //这儿就是XPATH查询串。
xmlfile.LoadFromFile(paramstr(1));
SelectIntf := xmlfile.DOMDocument As IDOMNodeSelect;
listIntf := SelectIntf.selectNodes(pathstr);
// ShowMessage(intToStr( listIntf.length));
For n1 := 0 To listIntf.length - 1 Do Begin
If (listIntf.item[n1].childNodes[0] <> Nil) And (String(listIntf.item[n1].attributes[2].nodeValue) = ‘1′) Then Begin
ss := listIntf.item[n1].childNodes[0].nodeValue;
ss1:= Scanstr(ss);
if ss1<>'’ then
listIntf.item[n1].childNodes[0].nodeValue := ss1;
End;
edtres.Text := inttostr(res);
End;
xmlfile.SaveToFile(paramstr(1));
showmessage(’处理完成!’);
End
else
If edtfile.Text <> ‘’ Then
Begin
pathstr := ‘//Content’; //这儿就是XPATH查询串。
xmlfile.LoadFromFile (edtfile.Text);
SelectIntf := xmlfile.DOMDocument As IDOMNodeSelect;
listIntf := SelectIntf.selectNodes(pathstr);
// ShowMessage(intToStr( listIntf.length));
For n1 := 0 To listIntf.length - 1 Do Begin
If (listIntf.item[n1].childNodes[0] <> Nil) And (String(listIntf.item[n1].attributes[2].nodeValue) = ‘1′) Then Begin
ss := listIntf.item[n1].childNodes[0].nodeValue;
ss1:= Scanstr(ss);
if ss1<>'’ then
listIntf.item[n1].childNodes[0].nodeValue := ss1;
End;
edtres.Text := inttostr(res);
End;
xmlfile.SaveToFile(edtfile.Text);
xmlfile.Destroy;;
showmessage(’处理完成!’);
End;
Finally
End;
End;
Function TFormRes.Scanstr(str: String): String;
Const
localfile = ’src’;
Var
tt,kk,str1,str2: String; //str1暂存剩余部分
pp, index, ipath: integer;
newflag:boolean;
Begin
//定位
str2:='’;
pp := pos(localfile, str);
str1:=str;
newflag:=false;
While pp > 0 Do Begin
If pp > 0 Then Begin
if copy(str1,pp+5,5)=’$PATH’ then
begin
newflag:=true;
break;
end;
For index := pp +5 To length(str1) Do
If str1[index] = ‘”‘ Then
break;
tt := copy(str1, pp+5 , index - pp-5); //get filepath
ipath := length(tt);
if ipath>0 then
While (tt[ipath] <> ‘/’) and (tt[ipath] <> ‘/’) and (ipath>0) Do
ipath := ipath - 1;
kk := copy(tt, ipath + 1, length(tt) - ipath + 1); //get filename
str2 := str2+copy(str1, 0, pp+4) + ‘$PATH’ + kk;
str1:= copy(str1, index, length(str1) - index);
res := res + 1;
End;
pp := pos(localfile, str1);
if pp=0 then str2:=str2+str1;
End;
if newflag then
result:=str
else
result:=str2;
End;
使用原生ms的xml解析器
2004-09-02
Procedure TFormRes.btnrunClick(Sender: TObject);
Var
SelectIntf: IDOMNodeSelect;
listIntf: IDOMNodeList;
pathstr, ss,ss1: String;
n1: integer;
Begin
Try
res := 0;
edtres.Text := ‘’;
If paramstr(1) <> ‘’ Then
Begin
pathstr := ‘//Content’; //这儿就是XPATH查询串。
xmlfile.LoadFromFile(paramstr(1));
SelectIntf := xmlfile.DOMDocument As IDOMNodeSelect;
listIntf := SelectIntf.selectNodes(pathstr);
// ShowMessage(intToStr( listIntf.length));
For n1 := 0 To listIntf.length - 1 Do Begin
If (listIntf.item[n1].childNodes[0] <> Nil) And (String(listIntf.item[n1].attributes[2].nodeValue) = ‘1′) Then Begin
ss := listIntf.item[n1].childNodes[0].nodeValue;
ss1:= Scanstr(ss);
if ss1<>'’ then
listIntf.item[n1].childNodes[0].nodeValue := ss1;
End;
edtres.Text := inttostr(res);
End;
xmlfile.SaveToFile(paramstr(1));
showmessage(’处理完成!’);
End
else
If edtfile.Text <> ‘’ Then
Begin
pathstr := ‘//Content’; //这儿就是XPATH查询串。
xmlfile.LoadFromFile (edtfile.Text);
SelectIntf := xmlfile.DOMDocument As IDOMNodeSelect;
listIntf := SelectIntf.selectNodes(pathstr);
// ShowMessage(intToStr( listIntf.length));
For n1 := 0 To listIntf.length - 1 Do Begin
If (listIntf.item[n1].childNodes[0] <> Nil) And (String(listIntf.item[n1].attributes[2].nodeValue) = ‘1′) Then Begin
ss := listIntf.item[n1].childNodes[0].nodeValue;
ss1:= Scanstr(ss);
if ss1<>'’ then
listIntf.item[n1].childNodes[0].nodeValue := ss1;
End;
edtres.Text := inttostr(res);
End;
xmlfile.SaveToFile(edtfile.Text);
xmlfile.Destroy;;
showmessage(’处理完成!’);
End;
Finally
End;
End;
Function TFormRes.Scanstr(str: String): String;
Const
localfile = ’src’;
Var
tt,kk,str1,str2: String; //str1暂存剩余部分
pp, index, ipath: integer;
newflag:boolean;
Begin
//定位
str2:='’;
pp := pos(localfile, str);
str1:=str;
newflag:=false;
While pp > 0 Do Begin
If pp > 0 Then Begin
if copy(str1,pp+5,5)=’$PATH’ then
begin
newflag:=true;
break;
end;
For index := pp +5 To length(str1) Do
If str1[index] = ‘”‘ Then
break;
tt := copy(str1, pp+5 , index - pp-5); //get filepath
ipath := length(tt);
if ipath>0 then
While (tt[ipath] <> ‘/’) and (tt[ipath] <> ‘/’) and (ipath>0) Do
ipath := ipath - 1;
kk := copy(tt, ipath + 1, length(tt) - ipath + 1); //get filename
str2 := str2+copy(str1, 0, pp+4) + ‘$PATH’ + kk;
str1:= copy(str1, index, length(str1) - index);
res := res + 1;
End;
pp := pos(localfile, str1);
if pp=0 then str2:=str2+str1;
End;
if newflag then
result:=str
else
result:=str2;
End;
相关文章推荐
- 今天将BLOG从CSDN搬了过来
- 一直以来没有成功运行出.TEXT Blog,今天找到一篇文章,转过来看看吧
- 我的blog居然有人回复哦(从CSDN Blog迁移过来的)
- 呃,今天,乖狗狗的blog终于开张了,欢迎大家有空过来坐坐(2005-04-05)
- 花了一天的时间把blog装修一新!(从CSDN Blog迁移过来的)
- 今天迁移blog.qudapin.com博客到51CTO
- Blog好久没有更新了。(从CSDN Blog迁移过来的)
- 今天终于决定换CSDN的BLOG了.
- 从今天开始起我要由delphi转VC++的学习啦~\(≧▽≦)/~啦啦啦
- 好久没有来blog了,最近比较忙,过来冒泡看一下
- 迁移Blog平台
- Delphi 中的 XMLDocument 类详解关于 XML 属性
- 今天用PHP解析xml时出现如下错误:php Fatal error: Class 'DOMDocument' not found。 环境:CentOS 5.5; PHP 5.3.8 解决方法:
- 今天把blog的css修改了一下
- 今天blog开张
- XML 文件中出现 & ® ™ 这类特殊字符的一种解决方法(from blog.joycode.com/ghj)
- Blog已迁移到GitHub Pages
- Delphi中使用纯正的面向对象方法 选择自 dabao45 的 Blog
- 今天试了一下ajax dropdownlist联动,实际上是先写在一个XmlTextWriter(Response.OutputStream,然后再response回去(等同于一个XML),里面有很多要注意的地方,比如dropdownlist的清空,遍历X
- 今天接过来一个网站,想登录管理页面,不过密码是一串“f6f22515b3cebb8e759640cd7d2f74ac”登录不进,MD5加密的,那要怎么登录??