今天把原先codelphi的blog迁移过来了!delphi+xml
来源:互联网 发布:拉波尔特 fm 数据 编辑:程序博客网 时间:2024/06/11 22:53
第一篇
使用原生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;
- 今天把原先codelphi的blog迁移过来了!delphi+xml
- 把blog搬过来了
- 今天把blog转移了
- 2004IT人通病,偶已经病的很不轻了 (转载blog.codelphi.com)
- 准备把iteye的博客迁移过来
- 今天把blog的css修改了一下
- 今天把另外一个博客都弄了过来
- 我的Blog迁移了
- 新开的博客,准备把百度博客迁移过来
- 先把俺在.blogdriver的blog搬过来
- 决定把BLOG的文章从CU上同步过来
- 今天过来了(12.18)
- 今天总算把blog架设起来了,^_^
- 我今天把blog转到了 hi.baidu.com/happy_yea
- 今天终于在CSDN把BLOG给开了~~~
- 生活方式:一生要做的99件事、要看的50部电影 摘自一竿残照.金棣@CODELPHI http://blog.codelphi.com/nil/
- 我的Blog今天开张了
- 今天开始用CSDN的blog了!
- 阴历阳历转换
- 炒股的葵花宝典
- 各进制之间的转换
- 通过HtmlInputFile控件上传文件的类
- C#对话框全接触
- 今天把原先codelphi的blog迁移过来了!delphi+xml
- C#中如何取得系统字体
- 为什么每次都要写标题呢
- SQLDMO类的使用
- C#条形码
- td在IE7不能浏览的问题解决办法[转自51testing]
- Lesson One Excuse me. 对不起.
- JavaScript时钟间隔的问题~
- 基于hibernate的das实现研究(2)